日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Django實現列表頁商品數據返回教程

瀏覽:44日期:2024-10-12 08:14:38

采用的是cbv方式,cbv就是在url中一個路徑對應一個類

rom django.views.generic import Viewfrom goods.models import Goods class GoodsListView(View):''' 通過django的view實現商品列表頁 :param request: :return: ''' def get(self,request): #重寫View中的get方法 goods_list = Goods.objects.all()[:10] #返回前所有商品的前10條數據 json_list = [] for goods in goods_list: json_item = {} json_item['name'] = goods.name json_item['market_price'] = goods.market_price json_item['sold_num'] = goods.sold_num json_list.append(json_item) from django.http import HttpResponse import json content = json.dumps(json_list) #將JSON格式轉成python字符串 return HttpResponse(content,'application/json')

在urls.py文件中配置函數對應的路由

from goods.views_base import GoodsListView urlpatterns = [''' #商品列表的路由 url(r’^goods/$’,GoodsListView.as_view(),name='goods_list')''']

接下來我們就可以通過url看到返回的數據信息了

Django實現列表頁商品數據返回教程

補充知識:django通過ajax請求接口返回多條數據,并動態生成表格,請求表單后將表格數據并入庫

一、最近在做接口相關的開發,需求是這樣的,通過一個接口所需要傳遞的參數,調用接口后,處理接口響應的參數,返回多條數據,并動態生成表格,請求表單后將表格的數據入庫,下面是我改過的代碼,跟實際代碼有些出入,但都是差不多的,只是命名相關的改了一下,第三方接口的代碼下面不會公布出來,請見諒!

二、其中界面很簡單,就一個文本輸入框,輸入關鍵字,一個查詢按鈕,點擊的時候觸發js事件,并通過ajax請求,還有一個暫時沒有數據的表格,查詢后動態生成的數據,操作只有一個移除功能,可以移除這條表格的數據,保存后入庫,這里只貼主要代碼,這里主要通過關鍵字來查找某個組group的用戶信息,具體操作需根據實際業務情況:

(1)、html頁面代碼如下:

<form method='post' action='{% url ’user:user_info_add’ %}'>{% csrf_token %}<div><input name='key_words' type='text'><a οnclick='query({{ user_id }})'>查詢</a></div><table><thead><tr><th>姓名</th><th>身份證號</th><th>手機號</th><th>操作</th></tr></thead><tbody id='user_info'></tbody></table><button type='submit'>保存</button>

(2)、js事件代碼如下:

<script type='text/javascript'> function query(user_id){ var key_words= $(’#key_words’).val() $.ajax({type: 'post',url: '{% url ’user:user_query_info’ %}',dataType: 'json',data: JSON.stringify({user_id: user_id, key_words: key_words}),success: function (data) { for (var i = 0; i < data.length; i++) { $(’#user_info’).append('<tr id=’row'+i+'’><input type=’hidden’ name=’row'+ i +'’ value=’'+i+'’><td>'+ data[i][’name’] + '</td><input type=’hidden’ name=’name'+ i +'’ value=’'+data[i][’name’]+'’><td>'+ data[i][’id_no’] + '</td><input type=’hidden’ name=’id_no'+ i +'’ value=’'+data[i][’id_no’]+'’><td>' + data[i][’mobile_no’]+'</td><input type=’hidden’ name=’mobile_no'+ i +'’ value=’'+data[i][’mobile_no’]+'’><td><a οnclick=’remove('+i+')’>移除</a></td></tr>') }} }); } function remove(i) { $(’#row’+i).remove() } </script>

(3)、其中點擊查詢來請求接口,這里django底下的url為user:user_query_info,其中view底下便是查詢所需數據,并調用接口UserInfoSearch,這個封裝的接口便不提供了,就是封裝參數請求過去而已,返回響應的數據動態生成表格,主要代碼如下:

from django.views.decorators.csrf import csrf_exemptfrom django.http import JsonResponsefrom json import loadsfrom user.models.user_model import Userfrom interface.models import UserInfoSearch class QueryUserInfo(View): ''' 查詢用戶信息 ''' def post(self, request): # 獲取ajax請求過來的data數據 for key in request.POST: keydict = eval(key) user_id = int(keydict['user_id']) user_name = str(keydict['user_name']) # 獲取用戶相關的數據庫數據,供接口使用 user_object = User.objects.get(id=user_id) group_id = user_object.group_id query_id = user_object.query_id # 請求搜索用戶信息接口 user_info_data = loads(UserInfoSearch.get( self, request, query_id, group_id, user_name).content) user_info_data = loads(user_info_data) # 返回成功進行操作,取出相關數據,并封裝進user_info_list這個列表當中,返回一個JsonResponse對象,通過返回的數據動態生成表格 if user_info_data[’code’] == 0: print(user_info_data) user_data = user_info_data[’data’] user_info_list = [] for user in user_data:user_list = user[’userList’]for list in user_list: user_dict = {} user_dict[’name’] = list[’name’] for info_list in list[’infoList’]: user_dict[’id_no’] = info_list[’id_no’] user_dict[’mobile_no’] = info_list[’mobile_no’] user_info_list.append(user_dict) print(user_info_list) else: user_info_list = [] return JsonResponse(user_info_list, safe=False) @csrf_exempt def dispatch(self, *args, **kwargs): return super(QueryUserInfo, self).dispatch(*args, **kwargs)

接口返回成功時,響應的數據格式如下:

{ 'code': 0, 'message': '成功', 'data': [ { 'keywords': '軟件工程', 'groupId': '10', 'userList': [ { 'name': ’林小熊’, 'infoList': [ { 'id_no': ’4413199509237848’, 'mobile_no': ’18565726783’ } ] } { 'name': ’林大熊’, 'infoList': [ { 'id_no': ’4413199509837848’, 'mobile_no': ’18565726788’ } ] } ] } ]}

(4)、請求接口成功后,如果有響應數據的話,就會動態生成表格,在上面的js底下有封裝了幾個input表單隱藏域,用來保存數據使用,主要的思路是把表格底下的每一條數據的不同列都通過索引來區分標記,比如第一行的就分別為row0,name0,id_no0,mobile_no0,以此類推,主要js的代碼如下:

for (var i = 0; i < data.length; i++) { $(’#user_info’).append('<tr id=’row'+i+'’><input type=’hidden’ name=’row'+ i +'’ value=’'+i+'’><td>'+ data[i][’name’] + '</td><input type=’hidden’ name=’name'+ i +'’ value=’'+data[i][’name’]+'’><td>'+ data[i][’id_no’] + '</td><input type=’hidden’ name=’id_no'+ i +'’ value=’'+data[i][’id_no’]+'’><td>' + data[i][’mobile_no’]+'</td><input type=’hidden’ name=’mobile_no'+ i +'’ value=’'+data[i][’mobile_no’]+'’><td><a οnclick=’remove('+i+')’>移除</a></td></tr>')}

點擊保存之后,要將返回多條數據入庫,而關鍵字是一樣的,關鍵字一樣,但是返回數據多天,這里就要篩選處理數據,主要代碼如下,那些model還有引包的這里就不附上了,這里主要是記錄如何得到所要保存的數據,篩選過濾數據:

class UserInfoAddView(View): def post(self, request, user_id): ''' 添加用戶信息 :param request: :param user_id: 用戶表id :return: ''' key_words = request.POST.get(’key_words’) common_user_data = {’key_words’: key_words} user_info_list = [] # 獲取所有表單數據,但只篩選動態表格底下的表單隱藏域名稱包含row的,然后通過這個鍵找到其值,然后通過其值找到動態表格的各個數據,封裝為字典,并追加到列表底下 for key, val in request.POST.items(): user_dict = {} if ’row’ in key:name = request.POST.get(’name’ + val)id_no = request.POST.get(’id_no’ + val)mobile_no = request.POST.get(’mobile_no’ + val)user_dict[’name’] = nameuser_dict[’id_no’] = id_nouser_dict[’mobile_no’] = mobile_no # 這里過濾掉循環所產生空的字典,有數據才追加列表 if user_dict:user_info_list.append(user_dict) # 循環列表底下的字典數據,并合并公共的數據字典,最后入庫 for user in user_info_list: user_data = dict(common_user_data, **user) UserInfo.objects.create(**user_data) return render(request, ’/user/user_info_success.html’)

以上這篇Django實現列表頁商品數據返回教程就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Django
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
鲁大师成人一区二区三区| 在线亚洲人成| 欧美精选一区二区三区| 国产欧美69| 日韩av一二三| 午夜亚洲福利| 日韩高清一区在线| 日韩国产欧美在线播放| 日本vs亚洲vs韩国一区三区二区| 亚洲香蕉视频| 蜜桃一区二区三区在线观看| 老司机久久99久久精品播放免费| 尹人成人综合网| 在线一区免费| 视频一区欧美日韩| 免费在线观看精品| 在线精品一区二区| 日韩三级精品| 少妇精品久久久一区二区三区| 亚洲午夜免费| 欧美在线黄色| 免费看一区二区三区| 久久亚洲精品中文字幕| 国内一区二区三区| 91精品在线观看国产| 亚洲精品一区二区在线看| 欧美午夜不卡| 伊人久久亚洲| 国产亚洲高清一区| 国产经典一区| 日本精品不卡| 麻豆精品91| 国产情侣久久| 久草精品视频| 99精品综合| 在线精品观看| 国产精品美女久久久久久不卡| 国产96在线亚洲| 99久久亚洲精品蜜臀| 国产美女精品| 91成人精品观看| 国产精品黑丝在线播放| 激情久久五月| 日本欧美韩国一区三区| 国际精品欧美精品| 麻豆久久精品| 欧美1区2区3| 香蕉久久99| 免费人成黄页网站在线一区二区| 一二三区精品| 国产精品二区不卡| 在线综合视频| 国产精品hd| 国产99精品| 青青草精品视频| 亚洲涩涩在线| 午夜天堂精品久久久久| 中文在线а√天堂| 国产视频一区在线观看一区免费| 欧美片第1页综合| 欧美aa在线观看| 日韩免费精品| 人人精品亚洲| 亚洲资源在线| 国产白浆在线免费观看| 丝袜脚交一区二区| 黄色精品视频| 在线精品一区二区| 香蕉成人av| 日本午夜精品一区二区三区电影| 欧洲精品一区二区三区| 日本不卡的三区四区五区| 久久久久亚洲| 国产精品综合色区在线观看| 婷婷综合社区| 精品国产99| 一区二区三区四区在线观看国产日韩 | 久久久久网站| 日韩高清二区| av亚洲在线观看| 国产精品99精品一区二区三区∴| 欧美日韩国产一区二区三区不卡| 国产成人精品一区二区三区视频| 国产精品视区| 成人在线视频免费| 亚洲精品激情| 极品日韩av| 欧美国产极品| 日韩高清在线不卡| 999在线观看精品免费不卡网站| 久久精品国产99国产精品| 亚洲成人日韩| 国产精品久久久久蜜臀| 欧美三级第一页| 尹人成人综合网| 在线人成日本视频| 国产另类在线| 亚洲日本久久| 欧美女激情福利| 国产成人精品福利| 国产日产高清欧美一区二区三区| 欧美专区18| 136国产福利精品导航网址| 久久这里只有| **爰片久久毛片| 天堂俺去俺来也www久久婷婷| 国产成人精品亚洲日本在线观看| 国产精品久久久久久模特| 亚洲+小说+欧美+激情+另类| 激情偷拍久久| 日韩在线观看不卡| 精品国产亚洲一区二区三区大结局 | 老司机精品视频在线播放| 亚洲精品福利| 中文字幕一区二区精品区| 99精品视频在线观看免费播放| 国产精品99一区二区三| 麻豆久久久久久| 国产精品欧美三级在线观看| 蜜桃视频第一区免费观看| 国产在线成人| 成人羞羞在线观看网站| 色爱综合网欧美| 国产在线观看91一区二区三区| 国产精品www.| 国产另类在线| 国产精品一区二区精品| 欧美亚洲免费| 日韩精品免费视频一区二区三区| 一区二区国产在线观看| 热久久久久久久| 蜜臀av一区二区在线免费观看| 六月天综合网| 日韩专区一卡二卡| 午夜国产精品视频| 婷婷色综合网| 爽好久久久欧美精品| 免费在线观看成人| 日本一区免费网站| 欧美视频久久| 久久一区欧美| 国产一区二区视频在线看| 日韩88av| 日韩三区在线| 黑丝一区二区| 亚洲欧美久久久| 亚洲v天堂v手机在线| 91精品国产自产在线丝袜啪| 国产亚洲精品精品国产亚洲综合| 亚洲+小说+欧美+激情+另类| 97久久中文字幕| 777久久精品| 久久一区视频| 香蕉视频亚洲一级| 99视频一区| 亚洲人妖在线| 国产麻豆一区二区三区精品视频| 国产福利一区二区精品秒拍| 麻豆中文一区二区| 一本大道色婷婷在线| 国精品一区二区| 亚洲人成精品久久久| 日本视频在线一区| 成人午夜在线| 久久国产影院| 先锋亚洲精品| 奇米狠狠一区二区三区| 国内精品伊人| 成人av动漫在线观看| 中文字幕亚洲影视| 国产精品66| 久久精品高清| 日本亚州欧洲精品不卡| 麻豆国产一区| 欧美精品一区二区久久| 欧美久久亚洲| 日本免费一区二区三区四区| 水蜜桃久久夜色精品一区的特点| 国产精品一区三区在线观看| 给我免费播放日韩视频| 精品在线播放| 欧美精品观看| 亚洲一级特黄| 国产精品毛片久久久| 日韩欧美一区免费| 亚洲永久精品唐人导航网址| 麻豆一区二区三| 樱桃成人精品视频在线播放| 欧美亚洲福利| 亚洲福利一区| 国产欧美一级| 中文日韩欧美| 麻豆国产精品视频| 亚洲中午字幕| 牛牛精品成人免费视频| 99在线|亚洲一区二区| 精品视频一区二区三区在线观看 | 在线精品亚洲欧美日韩国产| 日韩在线a电影| 精品久久久亚洲|