網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
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)換器類(lèi) 參數(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í)直接寫(xiě)正則
如何從前端獲取數(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é)果(成功!):
總結(jié)
原文鏈接:https://blog.csdn.net/bjsyc123456/article/details/115246319
- 上一篇:沒(méi)有了
- 下一篇:沒(méi)有了
相關(guān)推薦
- 2022-03-30 Python?使用和高性能技巧操作大全_python
- 2022-07-12 Python的私有屬性及@property
- 2022-09-07 Jquery實(shí)現(xiàn)異步上傳文件_jquery
- 2023-07-29 iview的table動(dòng)態(tài)合并行列的完整示例
- 2022-07-28 docker容器間進(jìn)行數(shù)據(jù)共享的三種實(shí)現(xiàn)方式_docker
- 2022-09-27 Android實(shí)現(xiàn)密碼隱藏和顯示_Android
- 2022-10-16 Python?numpy中np.random.seed()的詳細(xì)用法實(shí)例_python
- 2022-09-07 Go泛型應(yīng)用工廠方法及泛型使用_Golang
- 欄目分類(lèi)
-
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門(mén)
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支