校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)

Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)

熱門標(biāo)簽:宿遷星美防封電銷卡 百度地圖標(biāo)注沒有了 外呼并發(fā)線路 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢 地圖標(biāo)注審核表 長沙高頻外呼系統(tǒng)原理是什么 ai電銷機器人源碼 ai電話機器人哪里好 湛江智能外呼系統(tǒng)廠家

用戶發(fā)送請求時攜帶的參數(shù)后端需要使用,而不同的發(fā)送參數(shù)的方式對應(yīng)了不同的提取參數(shù)的方式

利用HTTP協(xié)議向服務(wù)器傳參有幾種途徑?

1.查詢字符串?dāng)?shù)據(jù)(query string):

形如:?key1=value1key2=value2
比如:http://127.0.0.1:8000/?name =lxage=0中的?name =lx

1)獲取請求路徑中的查詢字符串參數(shù),形如:?k1=v1k2=v2
2)可以通過request.GET屬性獲取,并返回QueryDict類型的對象

class TestQuery(View):

    def get(self, request):
        # 獲取查詢字符串參數(shù)name、age
        name = request.GET.get('name', 'lx')
        age = request.GET.get('age', '0')

        return HttpResponse('查詢字符串參數(shù):%s  %s' % (name, age))

重要提示:
提取查詢字符串參數(shù)不區(qū)分請求方式,即使客戶端進行POST方式的請求,依然可以通過request.GET獲取請求中的查詢字符串參數(shù)。

QueryDict補充:
1)QueryDict是由Django自己封裝的一個數(shù)據(jù)類型,繼承自python的字典Dict,它被定義在django.http.QueryDict中專門用來存儲請求中提取的查詢字符串參數(shù)和請求體參數(shù).即,HttpRequest對象中的屬性GET、POST都是QueryDict類型的數(shù)據(jù)

2. 提取請求體數(shù)據(jù)

1)可以發(fā)送請求體數(shù)據(jù)的請求方式有:POST、PUT、PATCH、DELETE
2)請求體數(shù)據(jù)格式不固定,常見的有:表單類型數(shù)據(jù)和JSON字符串類型,我們應(yīng)區(qū)別對待

2.1 表單類型請求體數(shù)據(jù)(Form Data)

前端發(fā)送的表單類型的請求體數(shù)據(jù),可以通過request.POST屬性獲取,并返回QueryDict對象。

class TestQuery(View):

    def post(self, request):
        # 獲取表單類型請求體參數(shù)中的username、password
        username = request.POST.get('username')
        password = request.POST.get('password')

        return HttpResponse('表單類型請求體參數(shù):%s  %s' % (username, password))

重要提示:

request.POST只能用來獲取POST表單發(fā)送的請求體數(shù)據(jù)

2.2 非表單類型請求體數(shù)據(jù)(Non-Form Data):JSON

1)非表單類型的請求體數(shù)據(jù),Django無法自動解析,可以通過request.body屬性獲取最原始的請求體數(shù)據(jù)
2)request.body獲取的是bytes類型的請求體原始數(shù)據(jù)

class TestQuery(View):

    def post(self, request):
        # 獲取請求體中原始的JSON數(shù)據(jù)
        json_str = request.body
        # 使用json模塊將原始的JSON數(shù)據(jù)轉(zhuǎn)字典
        json_dict = json.loads(json_str)
        # 請求體參數(shù)中的username、password
        username = json_dict.get('username')
        password = json_dict.get('password')

        return HttpResponse('表單類型請求體參數(shù):%s  %s' % (username, password))

結(jié)果展示:

3. URL路徑參數(shù):提取URL路徑中的特定部分數(shù)據(jù)

1)在定義路由時,可以從URL中獲取特定部分的路徑參數(shù)
2)Django的路由系統(tǒng)會將提取的路徑參數(shù)傳遞到視圖的內(nèi)部
3)path()和re_path()都可以提取路徑參數(shù)

需求1:http://127.0.0.1:8000/pratice/register/18/
提取路徑中的數(shù)字18
需求2:http://127.0.0.1:8000/pratice/register/18500000000/
提取路徑中的手機號18500000000

3.1 path()提取路徑參數(shù)

測試path()提取普通路徑參數(shù):http://127.0.0.1:8000/pratice/register/18/
path(‘pratice/register/int:age/', views.URLParam1View.as_view()),

class TestQuery(View):

    def get(self, request, age):
        #提取路徑參數(shù)是在路由中完成的,因為路徑是在路由系統(tǒng)中處理的
        print('提取的路徑傳參:',age)
        return HttpResponse('path()提取普通路徑參數(shù):%s' % age)

路由中提取路徑參數(shù)時,使用的關(guān)鍵字,必須跟視圖中參數(shù)名一致
思考:
實現(xiàn)需求1時提取age數(shù)字的int:age是什么?
路由轉(zhuǎn)換器
Django默認封裝了一些正則表達式,用于在path()中要提取路徑參數(shù)時使用
默認的路由轉(zhuǎn)換器:

位置在django.urls.converters.py

DEFAULT_CONVERTERS = {
    'int': IntConverter(), # 匹配正整數(shù),包含0
    'path': PathConverter(), # 匹配任何非空字符串,包含了路徑分隔符
    'slug': SlugConverter(), # 匹配字母、數(shù)字以及橫杠、下劃線組成的字符串
    'str': StringConverter(), # 匹配除了路徑分隔符(/)之外的非空字符串,這是默認的形式
    'uuid': UUIDConverter(), # 匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00
}

源碼解析:

實現(xiàn)需求2

http://127.0.0.1:8000/pratice/register/18500000000/
提取路徑中的手機號18500000000

問題:
1)默認的路由轉(zhuǎn)換器中,沒有專門用來匹配手機號的路由轉(zhuǎn)換器
2)所以在使用path()實現(xiàn)需求2時,就無法直接使用默認的路由轉(zhuǎn)換器
解決方案:
如果默認的路由轉(zhuǎn)換器無法滿足需求時,我們就需要自定義路由轉(zhuǎn)換器

在任意可以被導(dǎo)入的python文件中,都可以自定義路由轉(zhuǎn)換器

from django.urls import path, register_converter
from . import views
class MobileConverter:
  """自定義路由轉(zhuǎn)換器:匹配手機號"""
  # 匹配手機號碼的正則
  regex = '1[3-9]\d{9}'

  def to_python(self, value):
      # 將匹配結(jié)果傳遞到視圖內(nèi)部時使用
      return int(value)

  def to_url(self, value):
      # 將匹配結(jié)果用于反向解析傳值時使用
      return str(value)

# 注冊自定義路由轉(zhuǎn)換器
# register_converter(自定義路由轉(zhuǎn)換器, '別名')
register_converter(MobileConverter, 'mobile')

urlpatterns = [
    # path('pratice/register/‘路由轉(zhuǎn)換器':變量>, views.TestQuery.as_view()),
    # path('pratice/register/int:age>', views.TestQuery.as_view()),
    path('pratice/register/mobile:phone_num>', views.TestQuery.as_view()),
]
class TestQuery(View):

    def get(self, request,phone_num):
        #提取路徑參數(shù)是在路由中完成的,因為路徑是在路由系統(tǒng)中處理的
        print('提取的路徑傳參:',phone_num)
        return HttpResponse('path()提取普通路徑參數(shù):%s' % phone_num)

效果展示

3.2 re_path()提取路徑參數(shù)

re_path(r'^pratice/register/(?Pphone_num>1[3-9]\d{9})/$', views.TestQuery.as_view()),
class TestQuery(View):

    def get(self, request,phone_num):
        #提取路徑參數(shù)是在路由中完成的,因為路徑是在路由系統(tǒng)中處理的
        print('提取的路徑傳參:',phone_num)
        return HttpResponse('path()提取普通路徑參數(shù):%s' % phone_num)

3.3 path()和re_path()如何選擇?

1)path()語法相對簡潔一些,如果沒有路徑參數(shù)要提取或者要提取的路徑參數(shù)可以使用默認的路由轉(zhuǎn)換器實現(xiàn)時,就選擇path()。
2)re_path()語法相對復(fù)雜一些,但是,如果希望在匹配路由時,由自己編寫所有的正則式,就選擇re_path()。
需要注意的是,在使用re_path()時,網(wǎng)絡(luò)地址正則表達式一定要寫完整,要有嚴格的開頭和結(jié)尾

4. 請求頭

可以通過request.META屬性獲取請求頭headers中的數(shù)據(jù),request.META為字典類型。
常見的請求頭如:

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).
class HeadersParamView(View):
    """提取請求頭參數(shù)"""

    def get(self, request):
        # 獲取請求頭中文件的類型
        ret = request.META.get('CONTENT_TYPE')
        return http.HttpResponse('go')

5. 其他常用HttpRequest對象屬性

method:一個字符串,表示請求使用的HTTP方法,常用值包括:'GET'、'POST'。
FILES:一個類似于字典的對象,包含所有的上傳文件。
COOKIES:一個字符串,包含了瀏覽器自動發(fā)送的cookie緩存數(shù)據(jù)。
user:請求中認證出來的用戶對象。

到此這篇關(guān)于Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)的文章就介紹到這了,更多相關(guān)Django HTTP協(xié)議向服務(wù)器傳參內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Django項目如何獲得SSL證書與配置HTTPS
  • Django框架HttpRequest對象用法實例分析
  • Django框架HttpResponse對象用法實例分析
  • Django的HttpRequest和HttpResponse對象詳解
  • Django使用httpresponse返回用戶頭像實例代碼
  • 在Lighttpd服務(wù)器中運行Django應(yīng)用的方法

標(biāo)簽:海南 林芝 盤錦 寧夏 普洱 大同 漯河 南平

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)》,本文關(guān)鍵詞  Django,使用,HTTP,協(xié)議,向,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    亚洲一区二区视频在线| 日韩欧美国产午夜精品| 欧美三级日韩在线| 在线不卡的av| 精品欧美乱码久久久久久1区2区| 久久久精品黄色| 国产精品网友自拍| 亚洲与欧洲av电影| 久久99久久久欧美国产| 国产精品99久久久久久宅男| 色综合中文字幕国产| 日本高清视频一区二区| 欧美一区午夜视频在线观看| 久久蜜桃av一区二区天堂| 亚洲毛片av在线| 日韩av在线播放中文字幕| 国产99久久久精品| 欧美日韩精品欧美日韩精品| 久久久不卡网国产精品一区| 亚洲一区二区视频在线观看| 国产一区二区三区av电影| 91福利区一区二区三区| 欧美草草影院在线视频| 亚洲精品中文在线| 精品写真视频在线观看| 色综合久久久久综合99| 欧美成人一区二区| 一区二区成人在线视频| 国产一区二区精品久久99| 在线精品国精品国产尤物884a| 26uuu国产在线精品一区二区| 国产精品久久久久久久午夜片| 五月综合激情日本mⅴ| 风间由美性色一区二区三区| 欧美日韩成人一区二区| 亚洲国产精品激情在线观看| 日韩综合在线视频| 99久久精品国产一区| 精品国内片67194| 性做久久久久久| a美女胸又www黄视频久久| 91精品国产综合久久香蕉麻豆| 综合久久久久久| 国产麻豆欧美日韩一区| 欧美精品亚洲二区| 亚洲女爱视频在线| 成人国产免费视频| 欧美不卡一区二区三区四区| 亚洲v中文字幕| av电影一区二区| 久久久亚洲欧洲日产国码αv| 午夜一区二区三区在线观看| 99久久99精品久久久久久 | 一区二区三区精品在线| 大胆欧美人体老妇| 精品少妇一区二区三区在线播放| 亚洲va欧美va国产va天堂影院| 97精品久久久午夜一区二区三区| 精品99久久久久久| 日本 国产 欧美色综合| 欧美日韩一区二区三区高清| 亚洲视频 欧洲视频| 懂色中文一区二区在线播放| 久久人人97超碰com| 久久er99精品| 欧美成人精品3d动漫h| 三级欧美韩日大片在线看| 欧美日韩视频一区二区| 亚洲一区二区三区小说| 在线免费视频一区二区| 亚洲综合在线免费观看| av电影天堂一区二区在线| 国产精品入口麻豆原神| 国v精品久久久网| 国产精品污www在线观看| 国产激情一区二区三区| 久久久综合视频| 国产一区二区三区| 国产日韩欧美综合在线| 国产精品99久久久久| 久久奇米777| 国产成人精品一区二| 欧美国产日本韩| 成人99免费视频| 亚洲人亚洲人成电影网站色| 91在线播放网址| 亚洲老司机在线| 色视频一区二区| 亚洲3atv精品一区二区三区| 欧美日韩成人在线| 日本美女一区二区| 精品黑人一区二区三区久久| 国产麻豆欧美日韩一区| 欧美高清在线一区二区| 成人性视频网站| 亚洲精品水蜜桃| 欧美日韩和欧美的一区二区| 日韩二区三区在线观看| 日韩欧美成人一区| 国产高清视频一区| 中文字幕中文在线不卡住| 91美女在线视频| 亚洲123区在线观看| 欧美一区二区女人| 国产精品2024| 亚洲图片你懂的| 欧美妇女性影城| 精品一区二区三区在线播放视频| 国产日本欧美一区二区| 一本高清dvd不卡在线观看 | 欧美日本视频在线| 韩国av一区二区三区在线观看| 久久久不卡网国产精品一区| 91在线国产观看| 秋霞成人午夜伦在线观看| 国产日韩v精品一区二区| 91成人免费在线视频| 久久精品国产秦先生| 国产精品网站在线观看| 在线观看91精品国产麻豆| 国产精品996| 五月综合激情日本mⅴ| 国产亚洲美州欧州综合国| 在线免费观看一区| 国内精品自线一区二区三区视频| 日韩理论片中文av| 欧美岛国在线观看| 91亚洲精品乱码久久久久久蜜桃| 日韩在线观看一区二区| 国产精品视频一区二区三区不卡 | 丝袜诱惑制服诱惑色一区在线观看 | 国产91精品欧美| 一区二区在线看| 日韩视频一区在线观看| 风间由美一区二区av101| 日韩主播视频在线| 国产亚洲欧美日韩在线一区| 色婷婷精品久久二区二区蜜臀av| 天天亚洲美女在线视频| 精品国产露脸精彩对白 | 亚洲欧美日韩小说| 日韩欧美一区中文| 成人精品电影在线观看| 一区二区三区欧美在线观看| 国产午夜精品美女毛片视频| 在线观看av一区二区| 久久国产精品露脸对白| 亚洲欧美另类久久久精品2019| 日韩一区二区三区免费观看| 成人久久久精品乱码一区二区三区| 亚洲电影第三页| 国产精品美女久久久久av爽李琼 | 97精品久久久久中文字幕| 日本在线不卡视频| 椎名由奈av一区二区三区| 日韩午夜av电影| 日本韩国视频一区二区| 美女任你摸久久| 亚洲精品视频在线| 久久综合网色—综合色88| 欧美优质美女网站| 国产91精品精华液一区二区三区| 亚洲成人tv网| 亚洲少妇屁股交4| 久久综合给合久久狠狠狠97色69| 欧美日韩亚洲综合一区二区三区 | 91福利在线看| 国产精品一区一区三区| 日韩av中文字幕一区二区三区| 中文字幕+乱码+中文字幕一区| 26uuu欧美| 欧美一个色资源| 欧美性猛交一区二区三区精品| 久久精品国产亚洲a| 免费人成网站在线观看欧美高清| 亚洲综合图片区| 136国产福利精品导航| 亚洲精品在线一区二区| 宅男在线国产精品| 欧美日韩在线亚洲一区蜜芽| 成人av免费在线播放| 国内外精品视频| 日本不卡视频一二三区| 亚洲高清不卡在线观看| 亚洲另类在线一区| 26uuu色噜噜精品一区二区| 欧美亚一区二区| 色综合久久九月婷婷色综合| 成人福利视频网站| 国内偷窥港台综合视频在线播放| 日本亚洲免费观看| 国产精品免费丝袜| 国产欧美一区二区精品性色| 精品91自产拍在线观看一区| 欧美一区二区网站| 欧美日韩1区2区| 欧美一区二区三区四区在线观看| 欧美日韩二区三区| 欧美日韩不卡在线| 成人aaaa免费全部观看|