python-pycharm-django

建立app  (添加到installed apps)
python manage.py startapp test_worm

依賴文件生成
pip freeze > requirements.txt
依賴文件安裝
pip install -r requirements.txt

添加靜態資源,在settings.py中最後一行添加
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),) # 開發時建立的靜態目錄

建立表
python manage.py makemigrations
python manage.py migrate

對queryset進行序列化
from django.core import serializers
serializers.serialize('json', queryset)
開啓項目遠程訪問
1 開啓mysql數據庫遠程訪問:
新建查詢
mysql> use mysql;
Database changed
mysql> grant all privileges on *.* to root@'%' identified by "root";
2 讓別人經過IP訪問個人電腦(服務器必須開啓):
在settings.py中加入 ALLOWED_HOSTS = ['*'] # 個人電腦的ip地址
數據庫改成宿主數據庫地址 'HOST': '192.168.16.198',
3 找到項目中manage.py的位置,打開命令行運行如下命令
python manage.py runserver 0.0.0.0:8000

##面向對象css

  • 面向對象基本特徵(封裝,繼承,抽象,多態)(瞭解)
  • 類Class和實例Instance
    • 類是抽象的模板
    • 實例是根據類建立出來的一個個具體的「對象「
    • 類的定義:經過 class 關鍵字
    • 實例: 根據類建立
  • 函數
    • 用來實現某個功能的,可重複使用的代碼塊
    • 內建函數
    • 自定義函數:
      • 函數代碼塊以 def 關鍵詞開頭,後接函數標識符名稱 和 圓括號 ()
      • 傳入參數和自變量必須放在圓括號中間
      • 內容以冒號起始,而且縮進
      • return [表達式] 結束函數,選擇性地返回一個值給調用方。不帶表達式的return至關於返回 None。
      • 通常格式:def 函數名(參數列表): 函數體
      • 調用

六個標準的數據類型

不可變數據(3 個):Number(數字)、String(字符串)、Tuple(元組);

可變數據(3 個):List(列表)、Dictionary(字典)、Set(集合)。

  • 數字(Number),數字數據類型用於存儲數值html

    • 整型
    • 浮點型
    • 複數(無論)
    • 類型轉換
  • 字符串(String)前端

    • 定義
    • 格式化 :% 運算符
    • 長度:len(str)
    • 經常使用函數:注意返回值
      • 是否以字符串str1開頭:str.startswith('str1'),
      • 字符串拼接,
      • 是否包含特定字符:find()
      • 字符串分割: split
  • 列表Listpython

    • 定義
    • 經常使用操做:
      • 訪問或更新列表中的值(索引)
      • 添加元素: append() 在末尾添加新的對象
      • 插入元素:指定索引 insert(index,obj)
      • 刪除元素(按索引) del list[index]
      • 長度
      • 元素是否存在於列表中
      • 迭代 (循環)
  • 元組Tuple(瞭解)mysql

  • 字典Dictionaryjquery

    • 字典的每一個鍵值(key=>value)對用冒號(:)分割,每一個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式:d = {key1 : value1, key2 : value2 }
    • 鍵必須是惟一,不可變的,如字符串,數字或元組;
    • 值則沒必要:能夠取任何數據類型,
    • 經常使用操做:
      • 訪問字典元素
      • 清空字典
      • 判斷某鍵值是否存在於該字典中:key in dict
      • dic.keys(); dic.values() 返回字典的鍵/值 列表
      • dic.items() 列表返回可遍歷的(鍵, 值) 元組數組
  • 集合Set(瞭解)git

    • 一個無序不重複元素的序列
    • 使用set() 函數建立集合,注意:建立一個空集合必須用 set() 而不是 { },由於 { } 是用來建立一個空字典。
    • 經常使用操做:添加add(),取長度,清空,判斷元素是否存在

七種運算符

  • 算術運算符
  • 比較運算符
  • 賦值運算符
  • 邏輯運算符
  • 位運算符(不搞)
  • 成員運算符
  • 身份運算符(瞭解)

條件控制

  • if elif else

循環,迭代

  • for item in data:

Django web 基礎

django web應用目錄結構

  • manage.py : 運行django項目並用於管理任務的命令行工具
  • static 目錄:存放app運行所需的靜態文件,通常爲js和css,須要本身手動建立,並加載到settings.py配置中
  • templates 目錄: 存放app運行所需的html頁面
  • 項目名稱下 子文件:
    • _init.py 無論
    • settings.py :配置項目運行所需的環境,如 數據源,日誌,緩存等
    • urls.py : 與app目錄下views.py造成 視圖函數與URL路由綁定
  • app名稱下 子文件:
    • models.py: 存放自定義模型類(與數據庫造成orm對象關係映射)
    • views.py:
      • 定義視圖函數,並與項目下urls.py中的url路由進行綁定
        • 全部的views函數都須要以request對象做爲第一個參數,request表明客戶端瀏覽器向服務器請求的一個信息字符串, views中的函數須要接收這個字符串才行對他進行處理。
        • 視圖函數返回值類型:
          • 返回一個字符串: 調用 HttpResponse()函數
          • 返回一個網頁: 調用render函數,返回一個html模板文件(接收到一個請求,而後指定好一個html模板,並把上下文context字典中的內容, 加載進templates_name中指定的模板文件, 並經過瀏覽器渲染呈現.)
            • 參數request: 是一個固定參數, 就是指經過接受到的經過wsgi處理過的客戶端瀏覽器請求數
            • 參數template_name:templates中定義的HTML文件, 要注意路徑好比'templates\polls\index.html', 參數就要寫‘polls\index.html’
            • 參數 context: 要傳入上下文中用於渲染呈現的數據, 默認是一個字典格式,鍵即下文html模板中須要被替換的元素,鍵值即在views視圖函數中須要傳到html模板中變量須要替換成的值。
            • 模板文件中接收傳入的context:使用jinja2語言 {{data}}
          • 返回重定向 redirect
      • 用戶自定義函數: 通常封裝了視圖函數須要調用的某個功能

Html基礎

標籤 :由尖括號包圍的關鍵詞,是成對出現的,第一個標籤是開始標籤,第二個標籤是結束標籤

  • head標籤:網頁標題(css和js文件引入,自定義樣式和js函數)
  • body標籤內顯示的是網頁內容
  • 咱們關注的標籤:
    1. input輸入框: 經過id查找到該標籤,經過name屬性進行先後臺數據交互
    2. form表單:經過method指定數據提交方式,經過action指定提交數據的url,經過類型爲submit的按鈕指定提交請求事件。
  • form表單提交請求的類型:GET和POST,區別,用法
  • 樣式: 網頁顯示的效果
  • 事件:經過自定義jquery js實現觸發
  • 前端框架:已經定義好了樣式和js事件,用戶可選擇性調用(需提早引入要用到的css和js文件)

ajax數據交互

  • 按鈕點擊事件執行自定義js函數,在函數體中進行請求參數獲取
  • 經常使用寫法
  • $.ajax({ type: "post", async: true, //異步請求(同步請求將會鎖住瀏覽器,用戶其餘操做必須等待請求完成才能夠執行) url: url, //對應urls.py中的url data: {"data": data}, //請求的參數 dataType: "json", //返回數據形式爲json success: function (result) { //請求成功,獲取到的數據在result中 }, error: function (errorMsg) { //請求失敗時執行該函數 } });

總結

通常開發流程

頁面ajax請求 --> 後臺接收request請求-->獲取請求附帶參數 --> 將參數做爲查詢條件請求數據庫獲取數據--> 
  數據預處理(重中之重)--> json序列化並返回處理後的數據 --> 
  ajax請求成功獲取result --> 數據解析並渲染頁面

數據預處理:

經過循環迭代,將數據庫中取出的queryset數據集改形成咱們須要的形式

頁面接收數據並解析:

將接收到的數據,經過循環迭代,加載到頁面上

核心: 數據的處理(流程把握,總體思路)


命名規範(約定) :不使用保留字和關鍵字

原則:見名知意

文件名 :小寫 + 下劃線

類名 : 老是使用首字母大寫單詞串。如MyClass

函數&方法 : 小寫+下劃線

變量 : 小寫,由下劃線鏈接各個單詞

 


代碼規範

  1. 編碼
    • 文件一概使用UTF-8編碼
    • 文件頭部必須加入#--coding:utf-8--標識
  2. 代碼格式
    1. 縮進
      • 統一使用 4 個空格進行縮進
    2. 代碼裏 多數應該使用 單引號
    3. 文檔字符串 (docstring) 使用三個雙引號 """......"""
  3. 註釋
    1. 在代碼的關鍵部分(或比較複雜的地方), 能寫註釋的要儘可能寫註釋
    2. 文檔註釋以 """ 開頭和結尾, 首行不換行, 若有多行, 末行必需換行,

Pycharm使用

基本使用:

1. 建立項目:選擇解釋器project interpreter-選擇existing interpreter,點擊右邊的省略號-選擇system interpreter
2. 使用4個空格的tab: 選擇file->settings->editor->code style ->選擇Python,取消勾選use tab character
3. 取消拼寫檢查: file->default settings->editor->inspections->spelling取消勾選,python下的pep8取消勾選
4. 代碼自動提示 :打開設置,搜索code completion

經常使用快捷鍵:

1. ctrl +alt + L 自動格式化代碼
2. ctrl +alt + 空格 自動提示代碼,查看函數註釋信息
3. Ctrl + P 查看參數信息(在方法中調用參數)
4. alt + enter 自動導入包

#endgithub

做業

用戶登錄功能實現

  1. 建立一個django項目,運行該項目並訪問項目主頁
  2. 根據視圖關係映射,實現功能
    1. 定義用戶登錄視圖函數,返回用戶登錄頁面(配置函數與url對應)
    2. 建立用戶登錄頁面,在頁面中添加用戶登錄表單,參1:用戶名,參2:密碼
    3. 定義提交表單動做(執行某函數,並接收頁面傳遞過來的用戶名密碼)
    4. 在提交表單動做中判斷用戶名爲abc且密碼爲123時返回登錄成功頁面,不然返回登錄失敗頁面

新聞頭條展現(JSON解析學習)

 

json怎麼用
  • JSON 是輕量級的文本數據交換格式,對於 AJAX 應用程序來講,JSON 比 XML 更快更易使用
  • JSON 語法規則:
    • 數據保存在鍵/值對中
    • 數據由逗號分隔
    • 大括號保存對象
    • 中括號保存數組
  • JSON 對象在大括號({})中書寫:對象能夠包含多個名稱/值對:
  • 使用點號(.)或者中括號([])來訪問對象的值
  • 使用for-in循環,獲取對象的屬性
  • 使用json.loads(str)來解析json字符串
  • 使用json.dumps(data)進行對象序列化,便於頁面取值
python第三方HTTP請求庫requests的使用
  • requests是python實現的簡單易用的HTTP庫,使用起來比urllib簡潔不少
  • 使用pycharm安裝requests庫
  • 訪問http://docs.python-requests.org/zh_CN/latest/user/quickstart.html查看如何發送一個簡單的請求;如何在請求中傳遞參數
  • 查看如何獲取請求的返回值,正確編碼返回的數據
基於用戶登錄功能,成功則展現新聞頭條,失敗則重定向到登錄頁面

#####後臺部分web

  1. 訪問聚合數據官網:https://www.juhe.cn/
  2. 找到免費數據接口-新聞頭條,查看API接口地址,請求方式,請求參數
  3. 使用提供的API接口測試工具進行測試,查看返回的數據類型及數據格式
  4. 使用requests庫,請求該新聞頭條接口
  5. 接收返回的數據,查看返回的數據格式
  6. 獲取所須要的數據,並使用json解析該數據
  7. 定義一個data_list數組,用來保存咱們須要的數據
  8. 使用for -in循環,遍歷該json解析後的數據,取出咱們須要的數據title,date,url,thumbnail_pic_s,並保存到data_list中
  9. 將組裝好的數據從新序列化並返回給成功頁面 #####前端頁面部分
  10. 使用模板語言接收後臺返回的HttpResponse

 

 

從數據庫獲取數據

 

安裝MySQL數據庫
  1. 將MySQL數據庫安裝到本地,記住mysql用戶名和密碼
  2. 使用導航貓測試是否能成功鏈接數據庫
在django項目中使用數據庫
  1. 修改settings配置數據源爲本地數據庫ajax

  2. 使用django自帶的數據庫管理類from django.db import connection

  3. 執行sql語句獲取查詢結果

    with connection.cursor() as cursor:
     	cursor.execute(sql)
     	data = cursor.fetchall()
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息