django復習
tips
python3中字符串是unicode驾讲,字節(jié)是將unicode編碼后的utf或gbk字節(jié)串
python2中的字符串就是python3中的字節(jié)嫉入,u(字符串)表示unicode字符串
基本數(shù)據(jù)類型
函數(shù)及嵌套
面向?qū)ο笕筇匦?/p>
mysql 設計表 索引 函數(shù) 視圖 觸發(fā)器
進程線程協(xié)程的區(qū)別
前端 jquery bootstrap
django必須的鹃唯,示例程序獨立完成蒿讥。
HTTP知識
djaogo請求生命周期
Django知識點
路由規(guī)則
- /index/
- /index/\d+
- /index/(\d+)
- /index/?P<name(\d+)>
- include
- 反向生成url
- {% url "" %}
- reverse('a1',args = (1,2,3))
視圖函數(shù)
請求相關
響應相關
模板語言
if for
索引
執(zhí)行:不加括號自動執(zhí)行函數(shù)
filter和simple_tag
ORM操作
創(chuàng)建表
類 繼承 models.Model
字段 Inter Char Foreign MantToMany
操作表
增
刪
改
查
補充:
fliter傳參:
a=1,b=2
**{}
Q()|Q()
values:
values_list:
all/values/values_list:
雙下劃綫跨表查詢:
正向:
反向:
需求寫代碼
內(nèi)容詳細:
1 數(shù)據(jù)類型
2 函數(shù)
3 面向?qū)ο笕筇匦?/p>
4 socket:本質(zhì)傳輸字節(jié)。所有網(wǎng)絡通信都基于socket
5 數(shù)據(jù)庫設計:單表键畴,foreignkey匆绣,manytomany (作業(yè):自己熟悉的領域設計表)
6 會用:html/css/js/jquery/bootstrap
7 http知識
基于socket
? 瀏覽器(格式一)
? web服務器(格式一)
? MYSQL客戶端(pymysql)(格式二)
? MYSQL服務端(mysqld)(格式二)
本質(zhì):
socket = socket,socket()
socket.connect(ip,port)
socket.sendall(b'78asdas') #格式
瀏覽器發(fā)送GET請求的數(shù)據(jù)格式:
? socket.sendall(b'GET /index/?name=aa&sex=bb http1.1\r\nAccept:text/html\r\nAccept-Encoding:gzip, deflate\r\n\r\n')
瀏覽器發(fā)送POST請求的數(shù)據(jù)格式:
? POST請求也可以在url上傳參
? socket.sendall(b'GET /index/?name=aa&sex=bb http1.1\r\nAccept:text/html\r\nAccept-Encoding:gzip, deflate\r\n\r\na1=1&a2=2&a3=3')
django加工POST請求的數(shù)據(jù):
讀取請求頭content-type:application/x-www驻右,那么解析request.body里的內(nèi)容,放到request.POST中
request.body | b'a1=1&a2=2&a3=3' | b'a:1;b:2' |
---|---|---|
request.POST | {'a1’:!,'a2':2,'a3':3} | 空 |
http協(xié)議
? -請求頭之間:\r\n
? -請求頭與請求體:\r\n\r\n
? -GET請求無請求體
? -無狀態(tài)崎淳,短鏈接:socket請求響應斷開
? -請求頭代表的意義
? User-Agent:用戶代理堪夭,請求來源設備
? referer:防盜鏈
? content-type:判斷請求體是什么格式
響應頭:response headers
Django的生命周期:
wsgi協(xié)議:web服務網(wǎng)關接口
模塊:wsgiref uwsgi
路由系統(tǒng):
/index/ views.func
/index/\d+ views.func
/index/ views.include()
視圖函數(shù):
FBV function based view
CBV class based view
ORM
models <=> sql
template
html/css 渲染
注意:
渲染工作在Django中執(zhí)行完畢之后,字符串返回給瀏覽器拣凹。
遇到js /css等再發(fā)一次請求森爽,不會渲染,僅返回靜態(tài)文件嚣镜。
問題
? TemplateDoesNotExist
? 寫錯誤
?
? 靜態(tài)文件404
作業(yè):
- 員工
- 設計能力
- 需求:
- 學生爬迟,老師,班主任菊匿,班級
- 班主任付呕,講師有用戶名和密碼
- 創(chuàng)建表
- 具體功能:
- 除登陸頁面,不登錄不能訪問(裝飾器)
- 老師列表頁面跌捆,增刪改查徽职,查看詳情
- 班級列表
- 學生列表
學生 | 一對多 | 班級 |
老師 | 多對多 | 班級 |
班主任 | 一對多 | 班級 |
學生,老師佩厚,班主任 | 一對一 | 用戶 |
學生:ID 姓名 班級ID 用戶ID
老師:ID 姓名 用戶ID
班主任:ID 姓名 班級ID 用戶ID
班級:ID 名字
老師_班級:ID 老師ID 班級ID
用戶:ID 賬號 密碼 是否為管理員 角色(0未定義姆钉,1學生 2老師 3班主任)