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

Django框架的使用教程路由請(qǐng)求響應(yīng)的方法

 更新時(shí)間:2018年07月03日 09:28:58   作者:Gaidy  
這篇文章主要介紹了Django框架的使用教程路由請(qǐng)求響應(yīng)的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

路由

路由可以定義在工程的目錄下(看你的需求),也可以定義在各個(gè)應(yīng)用中來(lái)保存應(yīng)用的路由,用主路文件urls中使用include()包含各個(gè)應(yīng)用的子路由的數(shù)據(jù)

路由的解析順序

Django接收到請(qǐng)求后,從主路由文件urlpatterns中的路由從上倒下順序查找,如果有include包含,則進(jìn)入子應(yīng)用的urls中的urlpatterns中查找(從上而下)

路由的結(jié)尾斜線

Django有/結(jié)尾路由,用戶不需要加/,就可以直接重定向到/結(jié)尾的路徑上

路由命名(可以避免不同應(yīng)用使用相同名字發(fā)生沖突)

如:

# 主路由
from django.conf.urls import url,include
from django.contrib import admin
import django_test.urls

urlpatterns = [
  url(r'^admin/', admin.site.urls),
  url(r'^users/',include(django_test.urls ,namespace='users'))
]

reverser反解析(子應(yīng)用的路由都需要命名)

注意點(diǎn):

  1. 對(duì)于未指明namespace的,reverse(路由name)
  2. 對(duì)于指明namespace的,reverse(命名空間namespace:路由name)

請(qǐng)求(POST,PUT,PATCH,DELETE)默認(rèn)開(kāi)啟CSRF防護(hù)

post請(qǐng)求那些需要到postman測(cè)試工具里面測(cè)試

先把CSRF防護(hù)注釋掉

向服務(wù)器傳遞參數(shù)的方式

URL:直接在URL中傳遞數(shù)據(jù)

查詢字符串:key1=value1&key2=value2;

請(qǐng)求體:在body中傳遞數(shù)據(jù),常見(jiàn)有表單,json,xml

請(qǐng)求頭:在http報(bào)文頭中

URL參數(shù)傳遞

未定義參數(shù)順序傳遞

子應(yīng)用的路由設(shè)置

urlpatterns = [
  # 這邊定義子應(yīng)用的路由
  url(r'^index/$',views.index,name='index'),
  url(r'^show/$',views.show,name='show'),
  url(r'^parameter/([a-z]+)/(\d{4})$',views.parameter,name='parameter'),
]

定義視圖函數(shù)

# name,和age參數(shù)位置調(diào)換會(huì)影響下面的輸出結(jié)果
def parameter(request,name, age):

  print('age=%s'%age)
  print('name=%s' % name)
  return HttpResponse('OK')

命名參數(shù)按照名字傳遞

子路由

urlpatterns = [
  # 這邊定義子應(yīng)用的路由
  url(r'^index/$',views.index,name='index'),
  url(r'^show/$',views.show,name='show'),
  url(r'^parameter/(?P<name>[a-z]+)/(?P<age>\d{4})$',views.parameter,name='parameter'),
]

視圖函數(shù)

# age 和name位置改變值不變
def parameter(request,age, name):

  print('age=%s'%age)
  print('name=%s' % name)
  return HttpResponse('OK')

查詢字符串(傳遞參數(shù))

注意:查詢字符串不區(qū)分請(qǐng)求方式,即假使客戶端進(jìn)行POST方式的請(qǐng)求,依然可以通過(guò)request.GET獲取請(qǐng)求中的查詢字符串?dāng)?shù)據(jù)。

子路由

url(r'^qust/$',views.qust),

視圖函數(shù)

def qust(request):
  a = request.GET.get('a')
  b = request.GET.get('b')
  alist = request.GET.getlist('a')
  print(a) # 3
  print(b) # 2
  print(alist) # ['1', '3']
  return HttpResponse('OK')

運(yùn)行(后面在加)

請(qǐng)求體(傳遞參數(shù))

表單類

路由設(shè)置

url(r'^get_form/$', views.get_form)

視圖函數(shù)

def get_form(request):
  name = request.POST.get('name')
  age = request.POST.get('age')
  alist = request.POST.getlist('name')
  print(name)
  print(age)
  print(alist)
  return HttpResponse('OK')

運(yùn)行

非表單類

路由

url(r'^get_body_json/$', views.get_body_json),

視圖

def get_body_json(request):
  json_str = request.body
  json_str = json_str.decode() # python3.6 無(wú)需執(zhí)行此步
  req_data = json.loads(json_str)
  print(req_data['a'])
  print(req_data['b'])
  return HttpResponse('OK')

運(yùn)行

請(qǐng)求頭(傳遞參數(shù))

可以通過(guò)request.META屬性獲取請(qǐng)求頭headers的數(shù)據(jù)

路由

url(r'^get_head/$', views.get_head)

視圖函數(shù)

def get_head(request):
  print(request.META['CONTENT_TYPE'])
  return HttpResponse('OK')

運(yùn)行

常見(jiàn)的請(qǐng)求頭

CONTENT_LENGTH – The length of the request body (as a string).

CONTENT_TYPE – The MIME type of the request body.

HTTP_ACCEPT – Acceptable content types for the response.

HTTP_ACCEPT_ENCODING – Acceptable encodings for the response.

HTTP_ACCEPT_LANGUAGE – Acceptable languages for the response.

HTTP_HOST – The HTTP Host header sent by the client.

HTTP_REFERER – The referring page, if any.

HTTP_USER_AGENT – The client's user-agent string.

QUERY_STRING – The query string, as a single (unparsed) string.

REMOTE_ADDR – The IP address of the client.

REMOTE_HOST – The hostname of the client.

REMOTE_USER – The user authenticated by the Web server, if any.

REQUEST_METHOD – A string such as  "GET" or  "POST" .

SERVER_NAME – The hostname of the server.

SERVER_PORT – The port of the server (as a string).

響應(yīng)

  1.  HttpResponse提供一系列子類
  2. HttpResponseRedirect 301
  3. HttpResponsePermanentRedirect 302
  4. HttpResponseNotModified 304
  5. HttpResponseBadRequest 400
  6. HttpResponseNotFound 404
  7. HttpResponseForbidden 403
  8. HttpResponseNotAllowed 405
  9. HttpResponseGone 410
  10. HttpResponseServerError 500

案例 # HttpResponse(content=響應(yīng)體,content_type=響應(yīng)數(shù)據(jù)類型,status=狀態(tài)碼)

# content:表示返回的內(nèi)容
# status_code:返回的HTTP響應(yīng)狀態(tài)碼
# content_type: 指定返回?cái)?shù)據(jù)的MIME類型
from django_http import HttpResponse

def index(request):
  return HttpResponse('歡迎來(lái)到Gaidy博客', status=202)

JsonResponse(返回的json數(shù)據(jù))

from django.http import JsonResponse

def index(request):
  return JsonResponse({'name': 'gaidy', 'age': '25'})

運(yùn)行結(jié)果

redirect重定向

from django.shortcuts import redirect

# django_test是路由的空間命名
def show(request):
  # 重定向
  return redirect(reverse('django_test:index'))

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python導(dǎo)入oracle數(shù)據(jù)的方法

    Python導(dǎo)入oracle數(shù)據(jù)的方法

    這篇文章主要介紹了Python導(dǎo)入oracle數(shù)據(jù)的方法,涉及Python讀取csv文件信息再插入到Oracle數(shù)據(jù)庫(kù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-07-07
  • Python Pillow庫(kù)詳細(xì)介紹與代碼示例

    Python Pillow庫(kù)詳細(xì)介紹與代碼示例

    Python Pillow 庫(kù)是一個(gè)強(qiáng)大的圖像處理工具,是經(jīng)典 PIL(Python Imaging Library)庫(kù)的現(xiàn)代分支,以下是對(duì) Pillow 庫(kù)的全面講解和完整代碼示例,需要的朋友可以參考下
    2025-04-04
  • Flask框架debug與配置項(xiàng)的開(kāi)啟與設(shè)置詳解

    Flask框架debug與配置項(xiàng)的開(kāi)啟與設(shè)置詳解

    這篇文章主要介紹了Flask框架debug與配置項(xiàng)的開(kāi)啟與設(shè)置,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • python matplotlib庫(kù)的基本使用

    python matplotlib庫(kù)的基本使用

    這篇文章主要介紹了python matplotlib庫(kù)的基本使用,幫助大家繪制圖表,進(jìn)行數(shù)據(jù)可視化分析,感興趣的朋友可以了解下
    2020-09-09
  • 基于python yield機(jī)制的異步操作同步化編程模型

    基于python yield機(jī)制的異步操作同步化編程模型

    這篇文章主要介紹了基于python yield機(jī)制的異步操作同步化編程模型,需要的朋友可以參考下
    2016-03-03
  • Django靜態(tài)文件加載失敗解決方案

    Django靜態(tài)文件加載失敗解決方案

    這篇文章主要介紹了Django靜態(tài)文件加載失敗解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python通過(guò)字典dict判斷指定鍵值是否存在的方法

    python通過(guò)字典dict判斷指定鍵值是否存在的方法

    這篇文章主要介紹了python通過(guò)字典dict判斷指定鍵值是否存在的方法,實(shí)例分析了Python中使用has_key及in判斷指定鍵值是否存在的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03
  • pandas 空的dataframe 插入列名的示例

    pandas 空的dataframe 插入列名的示例

    今天小編就為大家分享一篇pandas 空的dataframe 插入列名的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • python實(shí)現(xiàn)括號(hào)匹配的多種方法小結(jié)

    python實(shí)現(xiàn)括號(hào)匹配的多種方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了python中實(shí)現(xiàn)括號(hào)匹配的三種方法,文中的示例代碼簡(jiǎn)潔易懂,具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下
    2024-12-12
  • 基于python3監(jiān)控服務(wù)器狀態(tài)進(jìn)行郵件報(bào)警

    基于python3監(jiān)控服務(wù)器狀態(tài)進(jìn)行郵件報(bào)警

    這篇文章主要介紹了基于python3監(jiān)控服務(wù)器狀態(tài)進(jìn)行郵件報(bào)警,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評(píng)論

日喀则市| 富锦市| 托克逊县| 江安县| 西青区| 汕头市| 正镶白旗| 永宁县| 黄山市| 雅安市| 清水河县| 平湖市| 虎林市| 阿拉善右旗| 满洲里市| 鞍山市| 探索| 曲阳县| 竹北市| 万源市| 廉江市| 秭归县| 通州市| 阿鲁科尔沁旗| 德江县| 邵东县| 平和县| 清苑县| 筠连县| 洞头县| 布拖县| 乌兰察布市| 麟游县| 潮安县| 论坛| 宁津县| 玛曲县| 铁力市| 渝中区| 东乡县| 连南|