1. 程式人生 > >day62 Django框架--檢視系統&路由系統

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')),