建立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(集合)。
七種運算符
- 算術運算符
- 比較運算符
- 賦值運算符
- 邏輯運算符
- 位運算符(不搞)
- 成員運算符
- 身份運算符(瞭解)
條件控制
循環,迭代
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標籤內顯示的是網頁內容
- 咱們關注的標籤:
- input輸入框: 經過id查找到該標籤,經過name屬性進行先後臺數據交互
- 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
函數&方法 : 小寫+下劃線
變量 : 小寫,由下劃線鏈接各個單詞
代碼規範
- 編碼
- 文件一概使用UTF-8編碼
- 文件頭部必須加入#--coding:utf-8--標識
- 代碼格式
- 縮進
- 代碼裏 多數應該使用 單引號
- 文檔字符串 (docstring) 使用三個雙引號 """......"""
- 註釋
- 在代碼的關鍵部分(或比較複雜的地方), 能寫註釋的要儘可能寫註釋
- 文檔註釋以 """ 開頭和結尾, 首行不換行, 若有多行, 末行必需換行,
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
做業
用戶登錄功能實現
- 建立一個django項目,運行該項目並訪問項目主頁
- 根據視圖關係映射,實現功能
- 定義用戶登錄視圖函數,返回用戶登錄頁面(配置函數與url對應)
- 建立用戶登錄頁面,在頁面中添加用戶登錄表單,參1:用戶名,參2:密碼
- 定義提交表單動做(執行某函數,並接收頁面傳遞過來的用戶名密碼)
- 在提交表單動做中判斷用戶名爲abc且密碼爲123時返回登錄成功頁面,不然返回登錄失敗頁面
新聞頭條展現(JSON解析學習)
json怎麼用
- JSON 是輕量級的文本數據交換格式,對於 AJAX 應用程序來講,JSON 比 XML 更快更易使用
- JSON 語法規則:
- 數據保存在鍵/值對中
- 數據由逗號分隔
- 大括號保存對象
- 中括號保存數組
- JSON 對象在大括號({})中書寫:對象能夠包含多個名稱/值對:
- 使用點號(.)或者中括號([])來訪問對象的值
- 使用for-in循環,獲取對象的屬性
- 使用json.loads(str)來解析json字符串
- 使用json.dumps(data)進行對象序列化,便於頁面取值
python第三方HTTP請求庫requests的使用
基於用戶登錄功能,成功則展現新聞頭條,失敗則重定向到登錄頁面
#####後臺部分web
- 訪問聚合數據官網:https://www.juhe.cn/
- 找到免費數據接口-新聞頭條,查看API接口地址,請求方式,請求參數
- 使用提供的API接口測試工具進行測試,查看返回的數據類型及數據格式
- 使用requests庫,請求該新聞頭條接口
- 接收返回的數據,查看返回的數據格式
- 獲取所須要的數據,並使用json解析該數據
- 定義一個data_list數組,用來保存咱們須要的數據
- 使用for -in循環,遍歷該json解析後的數據,取出咱們須要的數據title,date,url,thumbnail_pic_s,並保存到data_list中
- 將組裝好的數據從新序列化並返回給成功頁面 #####前端頁面部分
- 使用模板語言接收後臺返回的HttpResponse
從數據庫獲取數據
安裝MySQL數據庫
- 將MySQL數據庫安裝到本地,記住mysql用戶名和密碼
- 使用導航貓測試是否能成功鏈接數據庫
在django項目中使用數據庫
-
修改settings配置數據源爲本地數據庫ajax
-
使用django自帶的數據庫管理類from django.db import connection
-
執行sql語句獲取查詢結果
with connection.cursor() as cursor:
cursor.execute(sql)
data = cursor.fetchall()