本節內容概述:html
表單提交的Method使用規則:get 獲取數據 post提交數據mysql
單選使用get正則表達式
多選使用getlist sql
request.POST.getlist("favor")
文件上傳須要再form表單增長屬性
enctype="multipart/form-data"
讀取文件須要注意以下步驟:
obj = request.FILES.get("fafafa")
filename = os.path.join('upload',obj.name)
f = open(filename, mode="wb")
for item in obj.chunks():
f.write(item)
f.close()
兩種模式
至關於編程的兩種模式:對象編程和過程編程兩種模式數據庫
模板語言循環字典編程
動態頁面,使用?進行傳參函數
注意模板中超連接跳轉頁面的代碼中須要有斜槓:post
新的一種方式:/1.html,須要再urls.py中使用正則表達式ui
Django1.0url
path('detail-(\d+).html',views.detail),
相應的,views函數的形參也會追加一個,形參隨便起名字
可是在Django2.0中,須要引入re_path
路由映射按照正則分組(從此推薦使用的):
匹配結果爲
對於views函數,能夠通用一種形參方式接受數據:
*args爲單個變量組成的元祖,**kwargs對應字典
Django對應的路由名稱
引用方式:
當前URL:request.path_info
也能夠用另外一種形式實現URL的自定義生成:
在views裏生成url
URL的分發:
Django默認使用sqlite做爲默認數據庫,若是想用mysql,則須要更改一下配置目錄裏的__init__文件:
數據庫須要本身先建立
數據建立
用Navicat查看sqlite數據庫
練習針對用戶的增刪改查,Url+Views+html
Django的Modles的字段類型:不少,基本類型主要有幾類:時間、字符串、數字、二進制
修改表結構時,增長一列後,執行makemigration 時,系統會提示增長的方式,按提示寫入默認值的需求
自增列,若是不寫,後臺會自動建立,手動生成,按以下語法規則,必須填入primary_key=True
字段的參數:
null 是否爲空
default 默認值
primary_key 主鍵
db_column 列名
db_index 普通索引
unique 惟一索引
unique_for date 只對日期部分作索引
unique_for_month 同上
unique_for_year 同上
choices Django admin中顯示下拉框,避免連表查詢下降效率
auto_now 更新時,自動更新爲當前時間
auto_now_add 建立時,自動建立爲當前時間
blank 只是在Django admin中是否爲空
varbose_name 在Django admin中顯示的字段中文
editable 在Django admin中是否能夠被編輯
error_messages 在Django admin中自定義錯誤提示信息
error_messages={‘required’:'請輸入。。。'}
help_text 在Django admin中給予文本框的提示
validators 在Django admin中自定義字段正則的錯誤信息
建立外鍵:models.ForeignKey("tabelname",to_field="column_name",default=XXX)
外鍵在表中的列名會自動加上表名+「_id」
UserInfo.user_group是一個對象
UserInfo.user_group.id是一個對象的屬性
UserInfo.user_group_id是一個列
建立數據時,能夠不用對象方式賦值給UserInfo.user_group
而是用給列UserInfo.user_group_id賦值的方式來關聯外鍵
這種外鍵嵌套能夠多層嵌套
做業:=========================用戶管理==========================
一、對於用戶組的增刪改查
二、對於用戶的增刪改查
添加必須作成模態對話框
刪除也必須是模態對話框
修改,能夠作跳轉,下拉框的默認值應該是原數據,而不是初始第一個值
三、比較好看的頁面
四、預習:Python進階之路 modles模塊的進階部分,一對1、一對多、多對多
Django ORM操做中最牛逼的語法:
一、__雙下劃綫
二、_set