溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Django視圖怎么用

發(fā)布時間:2021-12-14 14:42:56 來源:億速云 閱讀:106 作者:小新 欄目:編程語言

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

一個視圖函數(shù)或者類,簡稱視圖(view),是一個簡單的Python 函數(shù)(類),它接受Web請求并且返回Web響應。響應可以是HTML頁面、一個重定向、一個404錯誤、一個xml、json數(shù)據(jù)、或圖片等,視圖放置在項目或應用程序(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響應頭字段,用于告訴前端如何解析頁面
status是狀態(tài)碼,默認是200,可以自定義
using指定模板引擎的名稱,默認是使用Django模板引擎
render()函數(shù)

語法為render(request, template_name, context=None, content_type=None, status=None, using=None);

request:用于生成此響應的請求對象; template_name:templates 中定義的文件,要注意路徑名;

context:要傳入文件中用于渲染呈現(xiàn)的數(shù)據(jù), 默認為空字典;

content_type:生成的文檔要使用的MIME 類型,默認為DEFAULT_CONTENT_TYPE 設(shè)置的值;

status:http的響應代碼,默認是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舉例,在項目中增加一個profile.html文件(項目的templates中,html文件都在這個文件夾中),我們想要的效果能成功訪問/users/profile/
首先我們需要在users APP中的urls.py模塊中處理,需要導入ProfileView這個類:

from .views import ProfileView
url(r'^profile/$', ProfileView.as_view(), name='profile'),

此時會報錯,因為我們還沒有創(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類中打上斷點,然后我們運行項目,選擇Run—>Debug 項目名稱,然后運行,在控制臺中會出現(xiàn)這個地址: http://127.0.0.1:8000/,我們點進去,然后在后面加上/users/profile/的路徑,是不是就能看到我們編輯的HTML代碼`users profile`了;

Django視圖怎么用

剛剛說到打斷點,我們再來詳細說一下如何在Django項目中調(diào)試斷點

  • 第一步:在想要調(diào)試的代碼前打上斷點,也就是在代碼前面,行號的后面的位置,鼠標單擊,就可以設(shè)置斷點了;

  • 第二步:先確保項目沒有在運行狀態(tài),然后選擇Run->Debug->選擇要運行項目的名稱,此時就進入了斷點調(diào)試,斷點還有好多其他操作和功能,把鼠標移到相應的按鈕上看一下就能知道了;

配置users的url(再配置路由的時候可能會出現(xiàn)的問題)

配置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)容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI