1.什麼是視圖層 簡單來說,就是用來接收路由層傳來的請求,從而做出相應的響應返回給瀏覽器 2.視圖層的格式與參數說明 2.1基本格式 from django.http import HttpResponse def page_2003(request): html = '<h1>第一個網頁</h1> ...
1.什麼是視圖層
簡單來說,就是用來接收路由層傳來的請求,從而做出相應的響應返回給瀏覽器
2.視圖層的格式與參數說明
2.1基本格式
from django.http import HttpResponse
def page_2003(request):
html = '<h1>第一個網頁</h1>'
return HttpResponse(html)
# 註意需要在主路由文件中引入新創建的視圖函數
2.2帶有轉換器參數的視圖函數
def test(request, num):
html = '這是我的第%s個網頁' % num
return HttpResponse(html)
# 添加轉換器的視圖函數,request後面的參數num為path轉換器中的自定義名
2.3帶有正則表達式參數的視圖函數
同帶有轉換器參數的視圖函數
2.4重定向的視圖函數
from django.http import HttpResponse,HttpResponseRedirect
def test_request(request):--註意path函數里也要綁定test_request這個路徑
return HttpResponseRedirect('page/2003/')--重定向到127.0.0.1:8000/page/2003這個頁面去
2.5判斷請求方法的視圖函數
def test_get_post(request):
if request.method == 'GET':
pass
elif request.method == 'POST':
pass
2.6載入模板層的視圖函數
使用render()直接載入並相應模板語法:
from django.shortcuts import render
def test_html(request):
return render(request, '模板文件名', 字典數據)
註意視圖層的所有變數可以用local()方法全部自動整合成字典傳到render的最後一個參數里
2.7返回JsonResponse對象的視圖函數
json格式的數據的作用:
前後端數據交互需要用到json作為過渡,實現跨語言傳輸數據。
格式:
from django.http import JsonResponse
def ab_json(request):
user_dict={'username':'json,我好喜歡','password':'1243'}
return JsonResponse(user_dict,json_dumps_params={'ensure_ascii':False})
# 字典傳入時需要設置json_dumps_params格式化字元串,不然字典里的中文會報錯
list = [111,22,33,44]
return JsonResponse(list,safe=False)
# 列表傳入序列化時需要設置safe為false ,不然會報錯
2.8視圖層的FBV和CBV格式
視圖函數既可以是函數(FBV)也可以是類(CBV)
1.FBV
def index(request):
return HttpResponse('index')
2.CBV
# CBV路由
pathr'^login/',views.MyLogin.as_view())
# CBV視圖函數
from django.views import View
class MyLogin(View):
def get(self,request):
return render(request,'form.html')
def post(self,request):
return HttpResponse('post方法')
"""
FBV和CBV各有千秋
CBV特點
能夠直接根據請求方式的不同直接匹配到對應的方法執行