day62 Django框架--檢視系統&路由系統
一,django內建sqlite3資料庫的使用
1.sqlite:是一種檔案資料庫,使用單獨一個檔案儲存資料
2.多用於嵌入式,該檔案中類似於Mysql也存在很多表
3.django的settings.py中預設使用的就是sqlite3,不需要再自己配置
4.pycharm連線sqlite3,需要下載驅動
二,FBV(function base view)和CBV(class base view)
1.基於函式的檢視:FBV
檢視函式中通過request.method的不同進而執行不同的程式碼
2.基於類的檢視:CBV
1.檢視類必須繼承django.view.View
2.在類中定義和請求方法同名的方法
3.urls.py中註冊檢視的時候區別於FBV要寫成類名.as_view()
三,request物件的屬性和方法
1.request.method
2.request.path_info 獲取URL路徑(不帶引數)
3.request.get_full_path() 獲取URL(帶引數)
4.request.GET
5.request.POST
1.request.POST.get()
2.request.POST.getlist()
6.request.FILES
7.request.body
8.request.META
四,上傳檔案
#1.form表單需要加enctype="multipart/form-data" #2.request.FILES 大字典 #3.在後端自行寫程式碼儲存上傳的檔案 filename_obj = request.FILES.get('filename') #在當前的專案目錄下新建一個和上傳檔案檔名相同的檔案 with open(filename_obj.name,'wb') as f: for i in filename_obj.chunks(): f.write(i)
五,response
1.基礎必會三件套
from django.shortcuts import HttpResponse,render,redirect
六,路由系統
1.正則表示式
1.Django路由系統匹配URL路徑的時候是從上到下按照註冊順序來的
2.Django的路由系統只匹配URL路徑,不匹配域名,埠,URL引數
3.分組匹配 相當於給檢視函式傳位置引數
4.分組命名 相當於給檢視函式傳關鍵字引數
注意:分組匹配和分組命名匹配不能混合使用
2.給URL匹配模式起名字
1.name=‘別名’ 起別名的目的是為了反向解析URL的時候有依據
3.通過名字反向解析
1.在檢視函式中:
from django.urls import reverse
reverse('別名',)
2.在模板HTML頁面
{% url '別名' '引數1' ... %}
4.namespace模式(名稱空間)
#所有以app01開頭的都交給app01/urls.py去處理 url(r'^app01/',include(app01_urls,namespace='app01')), #所有以app02開頭的都交給app02/urls.py去處理 url(r'^app02/',include(app02_urls,namespace='app02')),