最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Django框架視圖介紹與使用詳解

 更新時間:2019年07月18日 10:49:20   作者:笑-笑-生  
這篇文章主要介紹了Django框架視圖介紹與使用,結(jié)合實(shí)例形式分析了Django框架視圖的功能、配置、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下

本文實(shí)例講述了Django框架視圖介紹與使用。分享給大家供大家參考,具體如下:

視圖

  • 視圖:即一個python函數(shù),可以叫 視圖函數(shù),或者簡稱 視圖,定義在 應(yīng)用/views.py 文件中。
  • 作用:接收并處理請求,調(diào)用M和T,響應(yīng)請求(返回HttpResponse或其子類)
  • 每一個用戶請求,都對應(yīng)著一個視圖(和url地址),由視圖處理請求后,再返回html頁面內(nèi)容給瀏覽器顯示。

URL配置及匹配

作用:建立url地址和視圖函數(shù)的對應(yīng)關(guān)系,當(dāng)用戶請求某個url地址時,讓django能找到對應(yīng)的視圖函數(shù)進(jìn)行處理。

配置url:

在應(yīng)用下創(chuàng)建urls.py,然后在項(xiàng)目下的urls.py文件中包含進(jìn)來:

# 項(xiàng)目下的urls.py
urlpatterns = [
  ...
  # 包含應(yīng)用下的urls.py文件
  url(正則表達(dá)式, include('應(yīng)用名.urls'))
]

在應(yīng)用下的urls.py中,進(jìn)行url請求的配置:

# 應(yīng)用下的urls.py
urlpatterns = [
  # 每一個url配置項(xiàng)都需要調(diào)用url函數(shù),指定兩個參數(shù)
  # 參數(shù)1: 匹配url的正則表達(dá)式
  # 參數(shù)2: 匹配成功后執(zhí)行的視圖函數(shù)
  url(正則表達(dá)式, 視圖函數(shù)名),
]

案例:

通過http://127.0.0.1:8080/app01/index地址,要調(diào)用視圖函數(shù)index訪問首頁。則可配置如下(域名和端口號不需要配置,只需要配置 app01/index 部分):

在app01應(yīng)用中創(chuàng)建urls.py文件,在該文件中配置url和視圖函數(shù)的對應(yīng)關(guān)系:

# app01.py
urlpatterns = [
  ...
  # 進(jìn)入首頁
  url(r'^index$', views.index),
]

在項(xiàng)目下urls.py中,把應(yīng)用下的urls.py包含進(jìn)來:

# Project01/urls.py
urlpatterns = [
  # 包含應(yīng)用app01下的urls.py
  url(r'^app01/', include('app01.urls')),
]

url匹配流程

輸入如下地址,訪問首頁:

http://127.0.0.1:8000/app01/index?aa=1&bb=xx

匹配流程:

url配置規(guī)則 (針對應(yīng)用下的url配置)

正則表達(dá)式 應(yīng)使用 ^ 和 $ 嚴(yán)格匹配請求url的開頭和結(jié)尾,以便匹配唯一的字符串

url匹配小結(jié)

  1. 域名、端口、參數(shù)不參與匹配
  2. 先到項(xiàng)目下的urls.py進(jìn)行匹配,再到應(yīng)用的urls.py匹配
  3. 自上而下的匹配
  4. 匹配成功的url部分會去掉,剩下的部分繼續(xù)作匹配
  5. 匹配不成功提示404錯誤

視圖函數(shù)

每一個請求的url地址,都對應(yīng)著一個函數(shù),叫視圖函數(shù),由視圖函數(shù)處理請求后,再返回頁面內(nèi)容給瀏覽器顯示。

應(yīng)用/views.py 下,定義視圖函數(shù),示例:

from django.http import HttpResponse
# 必須有一個參數(shù)request
def index(request):
  """進(jìn)入首頁的視圖函數(shù)"""
  # 處理完請求,返回字符串內(nèi)容給瀏覽器顯示
  return HttpResponse("Hello Python")

捕獲URL中的值

問題:對于如下的url地址,如何捕獲url上的兩個值(代表新聞類別和頁碼),并傳給視圖函數(shù)處理?

輸入如下地址:

# /show_news/新聞類別/頁碼
http://127.0.0.1:8000/show_news/1/2

解決: 把url中的需要獲取的值部分,設(shè)置為正則表達(dá)式的一個組 django在進(jìn)行url匹配時,就會自動把匹配成功的內(nèi)容,作為參數(shù)傳遞給視圖函數(shù)。

位置參數(shù): url中的正則表達(dá)式組,和視圖函數(shù)中的參數(shù)一一對應(yīng),函數(shù)中的參數(shù)名可以隨意指定。

示例:

# 位置參數(shù):新聞查看/新聞類別/第幾頁
url(r'^show_news/(\d+)/(\d+)$', views.show_news),
# 視圖函數(shù):views.py
def show_news(request, a, b):
  """顯示新聞界面"""
  return HttpResponse("新聞界面:%s %s" % (a, b))

關(guān)鍵字參數(shù): 在位置參數(shù)的基礎(chǔ)上,對正則表達(dá)式分組進(jìn)行命名:

?P<組名>

視圖函數(shù)中參數(shù)名,必須和正則表達(dá)式分組名一致。

示例:

# 關(guān)鍵字參數(shù):新聞查看/新聞類別/第幾頁
url(r'^show_news2/(?P<category>\d+)/(?P<page_no>\d+)$', views.show_news2),
# 視圖函數(shù):views.py
def show_news2(request, category, page_no):
  """顯示新聞界面2"""
  return HttpResponse("新聞界面:%s %s" % (category, page_no))

錯誤視圖

Django內(nèi)置了處理HTTP錯誤的視圖(在django.views.defaults包下),主要錯誤及視圖包括:

  • 404錯誤:page_not_found 視圖 (找不到界面)
  • 500錯誤:server_error 視圖    (服務(wù)器內(nèi)部錯誤)
  • 403錯誤:permission_denied 視圖    (權(quán)限拒絕)

一、404錯誤及視圖

url匹配失敗后,django會調(diào)用內(nèi)置的 page_not_found 視圖函數(shù),該視圖函數(shù)會調(diào)用 404.html的模板進(jìn)行顯示。

開發(fā)階段可以開啟調(diào)試模式,但產(chǎn)品上線后,要關(guān)閉調(diào)試模式。關(guān)閉調(diào)試模式后,會顯示一個標(biāo)準(zhǔn)的錯誤頁面

# 關(guān)閉調(diào)試模式(開發(fā)模式)
DEBUG = False
# 表示允許哪些域名可訪問當(dāng)前網(wǎng)站
ALLOWED_HOSTS = ['*']

404錯誤界面可以自定義: 在項(xiàng)目templates目錄面創(chuàng)建404.html,django找不到界面時,就會使用該界面了

二、500錯誤及視圖

若是在執(zhí)行視圖函數(shù)時出現(xiàn)運(yùn)行時錯誤,Django會默認(rèn)會調(diào)用 django.views.defaults.server_error 視圖,加載并顯示 500.html 模板:

server error (500)

類似的,可以在項(xiàng)目的templates目錄下,創(chuàng)建500.html來自定義該界面。

三、Django出錯日志查看:

查看 Exception Type 以及 Exception Value

查看 Traceback中的出錯行

希望本文所述對大家基于Django框架的Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò)

    這篇文章主要介紹了python機(jī)器學(xué)習(xí)之神經(jīng)網(wǎng)絡(luò),文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很好地幫助,需要的朋友可以參考下
    2021-04-04
  • python面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng)

    python面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python面向?qū)ο蟀鎸W(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-06-06
  • django使用haystack調(diào)用Elasticsearch實(shí)現(xiàn)索引搜索

    django使用haystack調(diào)用Elasticsearch實(shí)現(xiàn)索引搜索

    這篇文章主要介紹了django使用haystack調(diào)用Elasticsearch實(shí)現(xiàn)索引搜索,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python禁止位置傳參函數(shù)詳解

    python禁止位置傳參函數(shù)詳解

    文章介紹了Python3.x中的關(guān)鍵字參數(shù)特性,說明了如何在函數(shù)定義中使用*符號來限制參數(shù)只能通過關(guān)鍵字傳遞,而不是位置,這種特性在處理參數(shù)較多或順序可能導(dǎo)致混淆的函數(shù)時特別有用,提高了代碼的可讀性和健壯性
    2024-11-11
  • 分享十個Python超級好用提高工作效率的自動化腳本

    分享十個Python超級好用提高工作效率的自動化腳本

    在這個自動化時代,我們有很多重復(fù)無聊的工作要做。?想想這些你不再需要一次又一次地做的無聊的事情,讓它自動化,讓你的生活更輕松。本文分享了10個Python自動化腳本,希望對大家有所幫助
    2022-11-11
  • python?logging模塊的分文件存放詳析

    python?logging模塊的分文件存放詳析

    這篇文章主要介紹了python?logging模塊的分文件存放詳析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下
    2022-07-07
  • Python之字典添加元素的幾種方法

    Python之字典添加元素的幾種方法

    這篇文章主要介紹了Python之字典添加元素的幾種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • pandas中Series運(yùn)算匯總(算術(shù)、比較和邏輯運(yùn)算)

    pandas中Series運(yùn)算匯總(算術(shù)、比較和邏輯運(yùn)算)

    本文主要介紹了pandas中Series運(yùn)算匯總,包括算術(shù)運(yùn)算、比較運(yùn)算和邏輯運(yùn)算等,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-06-06
  • 關(guān)于python通過新建環(huán)境安裝tfx的問題

    關(guān)于python通過新建環(huán)境安裝tfx的問題

    這篇文章主要介紹了python安裝tfx/新建環(huán)境,新建一個環(huán)境tfx專門用來運(yùn)行流水線,這個環(huán)境安裝python3.8,對python安裝tfx相關(guān)知識感興趣的朋友一起看看吧
    2022-05-05
  • 用python 批量操作redis數(shù)據(jù)庫

    用python 批量操作redis數(shù)據(jù)庫

    這篇文章主要介紹了如何用python 批量操作redis數(shù)據(jù)庫,幫助大家更好的理解和學(xué)習(xí)使用python,感興趣的朋友可以了解下
    2021-03-03

最新評論

安阳县| 宿松县| 钦州市| 都江堰市| 凤城市| 大石桥市| 汤原县| 油尖旺区| 油尖旺区| 彩票| 宁城县| 蓬安县| 灵台县| 甘洛县| 金阳县| 巫山县| 宜川县| 天津市| 赤水市| 中方县| 涟源市| 宜都市| 兴城市| 苏尼特右旗| 梧州市| 兴安盟| 莒南县| 宜昌市| 天等县| 望奎县| 沙河市| 咸丰县| 麟游县| 佛坪县| 永修县| 堆龙德庆县| 蒙阴县| 双柏县| 山丹县| 波密县| 得荣县|