Django獲取前端數(shù)據(jù)的實現(xiàn)方式
Django獲取前端傳輸?shù)臄?shù)據(jù)的幾種方式
獲取拼接在url上的數(shù)據(jù)
class UrlData(View):
def get(self, request):
# request的GET方法獲取拼接在url上數(shù)據(jù)的對象
dict1 = request.GET
# get方法根據(jù)key取value
name = dict1.get('name')
age = dict1.get('age')
return HttpResponse('get--{}--{}'.format(name, age))測試

獲取post請求提交的表單數(shù)據(jù)
def post(self, request):
# request的POST方法獲取表單數(shù)據(jù)對象
dict1 = request.POST
# 同樣是get獲取數(shù)據(jù)
name = dict1.get('name')
age = dict1.get('age')
return HttpResponse('post--{}--{}'.format(name, age))postman測試

獲取json數(shù)據(jù)
class JsonData(View):
def post(self, request):
# request的body方法獲取的是所有請求體的二進制數(shù)據(jù)
json_body = request.body
print(json_body)
# 把請求體的二進制數(shù)據(jù)轉(zhuǎn)換為json格式
json_data = json.loads(json_body)
#get方法鍵值對方式獲取值
name = json_data.get('name')
age = json_data.get('age')
gender = json_data.get('gender')
return HttpResponse('name: {},age: {}, gender: {}'.format(name, age, gender))
打印臺結(jié)果

測試

提取路徑數(shù)據(jù)
class LuJData(View):
""" 多傳一個變量age """
def get(self, request, age):
return HttpResponse('age: {}'.format(age))
注冊視圖時代碼
注意: 注冊時使用的轉(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ù)添加的那個變量一樣的名字
path('users/lujdata/<int:age>/', views.LuJData.as_view()),
]測試

自定義轉(zhuǎn)換器
當(dāng)匹配url數(shù)據(jù)的時候有要求就可以使用自定義轉(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文件中注冊轉(zhuǎn)換器
# 參數(shù)1 為自定義轉(zhuǎn)換器類 參數(shù)2 起了一個別名 register_converter(MobileConverter, 'mobile')
注冊視圖函數(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()),
]
測試

re_path匹配視圖時直接寫正則

如何從前端獲取數(shù)據(jù),post到后臺,再入數(shù)據(jù)庫呢
首先,從前端獲取值。這里需要你自己去掌握怎么取,我只是總結(jié)一下我這個過程!下邊我是想能同時上傳多個文件,所以才嵌套的循環(huán)。

然后,根據(jù)對應(yīng)的url,找到相關(guān)的model(這里,需要了解好你的數(shù)據(jù)庫屬性)。比如,這里是我想入庫的model:

好了,看完這個,我們?nèi)デ岸怂鵳ost到的assign(),這里我們需要掌握一下

# 篩選條件:name和task_tags,所以不能用get(),而是用filter()
condition_filter = {'task_tags':task_id, 'name':file_name}
# 得到一個Queryset
testrawdata_Qset = TestRawData.objects.using('oracle').filter(**condition_filter)
# 獲得Queryset的值(這里我需要的是id)
for testrawdata in testrawdata_Qset:
data_id = testrawdata.idget_or_create()就是入庫了,看看入庫結(jié)果(成功!):

總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系解讀
這篇文章主要介紹了Pytorch Dataset,TensorDataset,Dataloader,Sampler關(guān)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09
Python按照某列內(nèi)容對兩個DataFrame進行合并操作方法
這篇文章主要給大家介紹了關(guān)于Python按照某列內(nèi)容對兩個DataFrame進行合并操作的相關(guān)資料,文中通過代碼示例介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08
keras訓(xùn)練曲線,混淆矩陣,CNN層輸出可視化實例
這篇文章主要介紹了keras訓(xùn)練曲線,混淆矩陣,CNN層輸出可視化實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06
Python tkinter之ComboBox(下拉框)的使用簡介
這篇文章主要介紹了Python tkinter之ComboBox(下拉框)的使用簡介,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2021-02-02
深入探討Python中的內(nèi)置類屬性`__repr__`
在Python中,__repr__是一個特殊的內(nèi)置類屬性,用于定義類的字符串表示形式,本文將深入探討__repr__的作用、用法以及一些實際應(yīng)用場景,希望對大家有所幫助2023-12-12
基于Python創(chuàng)建語音識別控制系統(tǒng)
這篇文章主要介紹了通過Python實現(xiàn)創(chuàng)建語音識別控制系統(tǒng),能利用語音識別識別說出來的文字,根據(jù)文字的內(nèi)容來控制圖形移動,感興趣的同學(xué)可以關(guān)注一下2021-12-12
django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文
這篇文章主要介紹了django實現(xiàn)HttpResponse返回json數(shù)據(jù)為中文,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03

