Django視圖(一) 一、 概述 作用:視圖接受web請求,並相應請求 本質:視圖是自定義的一個python中的函數 響應內容:正常視圖,重定向視圖,錯誤視圖(404,500,400) 響應過程: 二、 url配置 配置流程 url的反向解析 三、 視圖函數 1、 概述 其本質是一個函數,一般在v ...
Django視圖(一)
一、 概述
作用:視圖接受web請求,並相應請求
本質:視圖是自定義的一個python中的函數
響應內容:正常視圖,重定向視圖,錯誤視圖(404,500,400)
響應過程:
二、 url配置
配置流程
一般在創建項目時Django會預設將根級配置文件配置好。配置位置在工程文件夾下的settings.py文件里ROOT_URLCONF = '工程名.urls'。
第二級url配置在工程文件夾下的urls.py文件里的urlpatterns列表裡。eg:urlpatterns = [
path('admin/', admin.site.urls),
path('應用名/',include('應用名.urls'))
]
第三級url配置在應用文件夾下的urls.py文件里。eg:
from django.urls import path
from 應用名 import views
urlpatterns = [
path('news/',views.news),
]
訪問該url時應輸入:127.0.0.1:8000/應用名/news
在需要正則表達式時需註意如果想要從url中獲取一個值時,需要對正則加小括弧;匹配正則前方不用加反斜杠;正則前需要加‘r’表示字元串。
url的反向解析
三、 視圖函數
1、 概述
其本質是一個函數,一般在views.py文件中定義。用於將url和模版文件還有返回瀏覽器的數據聯繫在一起。
2、 錯誤視圖
404視圖:
只需要在template目錄創建404.html並將settings.py文件中的DEBUG改為False,ALLOWED_HOSTS = [*]。在404.html文件里寫{{request_Path}}可以直接在前端顯示用戶訪問的url。
四、 HttpRequest對象
1、 概述
伺服器接收http請求後,會根據報文創建HttpRequest對象;視圖函數的第一個參數就是HttpRequest對象;它是Django創建的,在調用視圖時傳遞給視圖。
2、 屬性
path:請求的完整路徑(不包括功能變數名稱和埠)
method:表示請求的方法,GET,POST
encoding:表示瀏覽器提交的數據的編碼方式(一般為utf-8)
GET:類似字典的對象,包含了get請求的所有參數
POST:類似字典的對象,包含了post請求的所有參數
FILES:類似字典的對象,包含了所有上傳的文件
cookies:字典類型,包含了所有cookie
session:字典類型,表示當前會話
3、 方法
is_ajax:如果是通過XMLHttpRequest發起的,返回Ture
4、 QuertDict對象
request對象中的GET、POST都屬於該對象。
get():根據鍵索取值,只能取一個值
getlist():將鍵的值以列表的形式返回,可以取多個值。
五、 HttpResponse對象
1、 概述:
用於給瀏覽器返回數據。與HttpRequest對象的區別是,HttpResponse對象是程式員創建的。
2、 用法
分為兩種,一種是不調用模版,直接返回數據;另一種是,調用模版,使用render方法。語法是render(request,templateName,[context])。request:請求對象,templateName:模版路徑,[context]:傳給模版的數據。
eg:
def news(request):
s = 'you'
return render(request,"news.html",{"obj":s})
3、 屬性
content:表示返回的內容模型
charset:編碼格式
status_code:響應狀態碼,200,400,500,404
content-type:指定輸出的MIME類型
4、 方法
init:使用頁面內容實例化HttpReponse對象
write(content):以文件的形式寫入
flush:以文件的形式輸出,刷新緩存區
set_cookie(key,value=’’,max_age=None,exprise=None)
delete_cookie(key):刪除cookie。如果刪除一個不存在的cookie,就會當什麼也沒有發生一樣。