這篇文章將為大家詳細(xì)講解有關(guān)Django視圖怎么用,小編覺得挺實(shí)用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

一個視圖函數(shù)或者類,簡稱視圖(view),是一個簡單的Python 函數(shù)(類),它接受Web請求并且返回Web響應(yīng)。響應(yīng)可以是HTML頁面、一個重定向、一個404錯誤、一個xml、json數(shù)據(jù)、或圖片等,視圖放置在項(xiàng)目或應(yīng)用程序(app)目錄中的名為views.py的文件中;
我們來試著寫一個函數(shù)類型的View視圖
from django.shortcuts import render def index(request): if request.method == 'POST': pass else: return render(request=request, template_name='index.html', context=None, content_type=None, status=None, using=None) 其中的context是字典 content_type設(shè)置HTTP響應(yīng)頭字段,用于告訴前端如何解析頁面 status是狀態(tài)碼,默認(rèn)是200,可以自定義 using指定模板引擎的名稱,默認(rèn)是使用Django模板引擎
語法為:render(request, template_name, context=None, content_type=None, status=None, using=None);
request:用于生成此響應(yīng)的請求對象; template_name:templates 中定義的文件,要注意路徑名;
context:要傳入文件中用于渲染呈現(xiàn)的數(shù)據(jù), 默認(rèn)為空字典;
content_type:生成的文檔要使用的MIME 類型,默認(rèn)為DEFAULT_CONTENT_TYPE 設(shè)置的值;
status:http的響應(yīng)代碼,默認(rèn)是200;
using:用于加載模板使用的模板引擎的名稱;
看完了函數(shù)視圖,那我們簡單的來看一下類視圖,類視圖比函數(shù)視圖代碼量更少
class ProfileView(View): def get(self, request): return render(request, template_name='profile.html') def post(self, request): pass
我們用之前的users app舉例,在項(xiàng)目中增加一個profile.html文件(項(xiàng)目的templates中,html文件都在這個文件夾中),我們想要的效果能成功訪問/users/profile/
首先我們需要在users APP中的urls.py模塊中處理,需要導(dǎo)入ProfileView這個類:
from .views import ProfileView url(r'^profile/$', ProfileView.as_view(), name='profile'),
此時會報錯,因?yàn)槲覀冞€沒有創(chuàng)建這個類,那我們先在users APP的views.py中編寫ProfileView類
class ProfileView(View):
def get(self, request):
return render(request, 'profile.html', {'name': 'Angle'})
def post(self, request):
username = request.POST.get('username', "")
password = request.POST.get('password', "")
return render(request, 'index.html', {'username': username, 'age': 18})然后在之前創(chuàng)建的profile.html文件中隨意幾句HTML代碼
<div >users profile</div> # 我在style中加入了一個顏色樣式
我們在剛剛編寫的ProfileView類中打上斷點(diǎn),然后我們運(yùn)行項(xiàng)目,選擇Run—>Debug 項(xiàng)目名稱,然后運(yùn)行,在控制臺中會出現(xiàn)這個地址: http://127.0.0.1:8000/,我們點(diǎn)進(jìn)去,然后在后面加上/users/profile/的路徑,是不是就能看到我們編輯的HTML代碼`users profile`了;

第一步:在想要調(diào)試的代碼前打上斷點(diǎn),也就是在代碼前面,行號的后面的位置,鼠標(biāo)單擊,就可以設(shè)置斷點(diǎn)了;
第二步:先確保項(xiàng)目沒有在運(yùn)行狀態(tài),然后選擇Run->Debug->選擇要運(yùn)行項(xiàng)目的名稱,此時就進(jìn)入了斷點(diǎn)調(diào)試,斷點(diǎn)還有好多其他操作和功能,把鼠標(biāo)移到相應(yīng)的按鈕上看一下就能知道了;
配置users的url的時候可能會出現(xiàn)url(r'^users/', include('users.urls', namespace='users'))報錯的問題,原因可能是Django的版本造成,1.0版本和2.0版本的源碼不同,include方法所帶的參數(shù)不同,2.0中include方法不能接受app_name參數(shù),我們需要做一些調(diào)整,解決方法為:url(r'^users/', include(('users.urls', 'users'), namespace='users')),這樣就可以正常啟動了
關(guān)于“Django視圖怎么用”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,使各位可以學(xué)到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章標(biāo)題:Django視圖怎么用-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://chinadenli.net/article16/hhjgg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、手機(jī)網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、Google、定制網(wǎng)站、域名注冊
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容