欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式

 更新時(shí)間:2023年02月20日 17:26:39   作者:B.Bz  
這篇文章主要介紹了Django獲取前端數(shù)據(jù)的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

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)文章

最新評(píng)論