Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式
Django獲取前端傳輸?shù)臄?shù)據(jù)的幾種方式
獲取拼接在url上的數(shù)據(jù)
class UrlData(View): def get(self, request): # request的GET方法獲取拼接在url上數(shù)據(jù)的對(duì)象 dict1 = request.GET # get方法根據(jù)key取value name = dict1.get('name') age = dict1.get('age') return HttpResponse('get--{}--{}'.format(name, age))
測(cè)試
獲取post請(qǐng)求提交的表單數(shù)據(jù)
def post(self, request): # request的POST方法獲取表單數(shù)據(jù)對(duì)象 dict1 = request.POST # 同樣是get獲取數(shù)據(jù) name = dict1.get('name') age = dict1.get('age') return HttpResponse('post--{}--{}'.format(name, age))
postman測(cè)試
獲取json數(shù)據(jù)
class JsonData(View): def post(self, request): # request的body方法獲取的是所有請(qǐng)求體的二進(jìn)制數(shù)據(jù) json_body = request.body print(json_body) # 把請(qǐng)求體的二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為json格式 json_data = json.loads(json_body) #get方法鍵值對(duì)方式獲取值 name = json_data.get('name') age = json_data.get('age') gender = json_data.get('gender') return HttpResponse('name: {},age: {}, gender: {}'.format(name, age, gender))
打印臺(tái)結(jié)果
測(cè)試
提取路徑數(shù)據(jù)
class LuJData(View): """ 多傳一個(gè)變量age """ def get(self, request, age): return HttpResponse('age: {}'.format(age))
注冊(cè)視圖時(shí)代碼
注意: 注冊(cè)時(shí)使用的轉(zhuǎn)換器里的變量名要 和 視圖里獲取數(shù)據(jù)的變量名的一致
urlpatterns = [ path('users/urldata/', views.UrlData.as_view()), path('users/jsondata/', views.JsonData.as_view()), # 使用int轉(zhuǎn)換器 <轉(zhuǎn)換器: 變量名> # 變量名要和視圖函數(shù)添加的那個(gè)變量一樣的名字 path('users/lujdata/<int:age>/', views.LuJData.as_view()), ]
測(cè)試
自定義轉(zhuǎn)換器
當(dāng)匹配url數(shù)據(jù)的時(shí)候有要求就可以使用自定義轉(zhuǎn)換器
工程目錄添加converters.py文件
自定義轉(zhuǎn)換器內(nèi)容
class MobileConverter: # regex是正則表達(dá)式 regex = '1[3-9]\d{9}' # 模仿Django自帶轉(zhuǎn)換器 def to_python(self, value): return int(value) def to_url(self, value): return str(value)
在工程目錄的urls.py文件中注冊(cè)轉(zhuǎn)換器
# 參數(shù)1 為自定義轉(zhuǎn)換器類 參數(shù)2 起了一個(gè)別名 register_converter(MobileConverter, 'mobile')
注冊(cè)視圖函數(shù)時(shí)使用自定義轉(zhuǎn)換器
urlpatterns = [ path('users/urldata/', views.UrlData.as_view()), path('users/jsondata/', views.JsonData.as_view()), # 使用自定義轉(zhuǎn)換器 path('users/lujdata/<mobile:age>/', views.LuJData.as_view()), ]
測(cè)試
re_path匹配視圖時(shí)直接寫正則
如何從前端獲取數(shù)據(jù),post到后臺(tái),再入數(shù)據(jù)庫(kù)呢
首先,從前端獲取值。這里需要你自己去掌握怎么取,我只是總結(jié)一下我這個(gè)過(guò)程!下邊我是想能同時(shí)上傳多個(gè)文件,所以才嵌套的循環(huán)。
然后,根據(jù)對(duì)應(yīng)的url,找到相關(guān)的model(這里,需要了解好你的數(shù)據(jù)庫(kù)屬性)。比如,這里是我想入庫(kù)的model:
好了,看完這個(gè),我們?nèi)デ岸怂鵳ost到的assign(),這里我們需要掌握一下
# 篩選條件:name和task_tags,所以不能用get(),而是用filter() condition_filter = {'task_tags':task_id, 'name':file_name} # 得到一個(gè)Queryset testrawdata_Qset = TestRawData.objects.using('oracle').filter(**condition_filter) # 獲得Queryset的值(這里我需要的是id) for testrawdata in testrawdata_Qset: data_id = testrawdata.id
get_or_create()就是入庫(kù)了,看看入庫(kù)結(jié)果(成功?。?/p>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式
latexify 是一個(gè)輕量級(jí)的 Python 模塊,可以將 Python 代碼轉(zhuǎn)換為 LaTeX 格式的數(shù)學(xué)表達(dá)式,這篇文章就來(lái)和大家探索一下如何使用latexify模塊實(shí)現(xiàn)將代碼為數(shù)學(xué)公式吧2023-12-12Python使用protobuf序列化和反序列化的實(shí)現(xiàn)
protobuf是一種二進(jìn)制的序列化格式,相對(duì)于json來(lái)說(shuō)體積更小,傳輸更快,本文主要介紹了Python使用protobuf序列化和反序列化的實(shí)現(xiàn),感興趣的可以了解一下2021-05-05python實(shí)現(xiàn)獲取序列中最小的幾個(gè)元素
這篇文章主要介紹了python實(shí)現(xiàn)獲取序列中最小的幾個(gè)元素,是非常實(shí)用的技巧,需要的朋友可以參考下2014-09-09django 按時(shí)間范圍查詢數(shù)據(jù)庫(kù)實(shí)例代碼
這篇文章主要介紹了django 按時(shí)間范圍查詢數(shù)據(jù)庫(kù)實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02Django 接收Post請(qǐng)求數(shù)據(jù),并保存到數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
今天小編就為大家分享一篇Django 接收Post請(qǐng)求數(shù)據(jù),并保存到數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn)
本文主要介紹了OpenCV中Canny邊緣檢測(cè)的實(shí)現(xiàn),邊緣檢測(cè)一般是識(shí)別目標(biāo)圖像中亮度變化明顯的像素點(diǎn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07Python全面解析json數(shù)據(jù)并保存為csv文件
這篇文章主要介紹了Python全面解析json數(shù)據(jù)并保存為csv文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Python三目運(yùn)算符(三元運(yùn)算符)用法詳解(含實(shí)例代碼)
三元運(yùn)算符在Python里被稱為條件表達(dá)式,這些表達(dá)式基于真(true)/假(false)的條件判斷,在Python 2.4以上才有了三元操作,下面這篇文章主要給大家介紹了關(guān)于Python三目運(yùn)算符(三元運(yùn)算符)用法的相關(guān)資料,需要的朋友可以參考下2023-02-02