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

您的位置:首頁技術(shù)文章
文章詳情頁

Django學(xué)習(xí)筆記之View操作指南

瀏覽:28日期:2024-09-11 15:55:23
Django的View

一個視圖函數(shù)(類),簡稱視圖,是一個簡單的Python 函數(shù)(類),它接受Web請求并且返回Web響應(yīng)。響應(yīng)可以是一張網(wǎng)頁的HTML內(nèi)容,一個重定向,一個404錯誤,一個XML文檔,或者一張圖片。

無論視圖本身包含什么邏輯,都要返回響應(yīng)。代碼寫在哪里也無所謂,只要它在你當(dāng)前項目目錄下面。除此之外沒有更多的要求了——可以說“沒有什么神奇的地方”。為了將代碼放在某處,大家約定成俗將視圖放置在項目(project)或應(yīng)用程序(app)目錄中的名為views.py的文件中。

導(dǎo)入:from django.views import View

一、查詢所有數(shù)據(jù)

查詢數(shù)據(jù)在自定義的視圖類中定義get方法

使用django.http模塊中的JsonResponse對非json格式的數(shù)據(jù)做返回處理

在JsonResponse必須添加safe=False參數(shù),否則會報錯:In order to allow non-dict objects to be serialized set the safe

from django.http import HttpResponse from django import http # Create your views here. class UserView(View): ’’’ 用戶視圖 ’’’ def get(self, request): # 模型類實例化對象 users = UserProfile.objects.all() user_list = [] for user in users: user_dict = { ’id’: user.id, ’username’: user.username, ’password’: user.password, ’open_id’: user.open_id, ’code’: user.code } user_list.append(user_dict) return http.JsonResponse(user_list) 二、創(chuàng)建數(shù)據(jù)

使用django中的json,把前端傳遞過來的json數(shù)據(jù)轉(zhuǎn)成字典

使用django.db.models模塊中的Q來查詢多個字段在數(shù)據(jù)庫中是否存在

from django.views import View from django.http import HttpResponse from django import http from django.db.models import Q import json class UserView(View): ’’’ 用戶視圖 ’’’ def post(self, request): # 獲取數(shù)據(jù), json轉(zhuǎn)字典 dict_data = json.loads(request.body.decode()) print(dict_data) nick_name = dict_data.get(’nickName’) code = dict_data.get(’code’) open_id = 'xljsafwjeilnvaiwogjirgnlg' # 校驗數(shù)據(jù) result = UserProfile.objects.filter(Q(code=code) | Q(open_id=open_id)) if not result.exists(): # 數(shù)據(jù)入庫 user = UserProfile.objects.create( username=nick_name, open_id=open_id, code=code ) # 返回響應(yīng) user_dict = { ’id’: user.id, ’username’: user.username, ’password’: user.password, ’open_id’: user.open_id, ’code’: user.code } return http.JsonResponse(user_dict) return http.JsonResponse('用戶已存在', safe=False, status=202)三、查詢某一條數(shù)據(jù)(單個)

前端需要傳遞pk/id值,通過pk/id查詢數(shù)據(jù),查詢一條數(shù)據(jù)必須用get,不能用filter,否則會報錯:AttributeError: ’QuerySet’ object has no attribute ’id’

數(shù)據(jù)轉(zhuǎn)換

返回響應(yīng)

class UserProfileDetail(View): ’’’ 詳情視圖 ’’’ def get(self, request): userInfo = UserProfile.objects.get(id=id) if not userInfo: return HttpResponse('查詢的用Info戶不存在', status=404) user_dict = { ’id’: userInfo.id, ’username’: userInfo.username, ’password’: userInfo.password, ’open_id’: userInfo.open_id, ’code’: userInfo.code } return http.JsonResponse(user_dict, status=200) 四、更新一條數(shù)據(jù)

前端需要傳遞pk/id值,通過pk/id查詢數(shù)據(jù),查詢一條數(shù)據(jù)必須用get,不能用filter,否則會報錯:AttributeError: ’QuerySet’ object has no attribute ’id’

更新一條數(shù)據(jù)時必須使用filter來查詢數(shù)據(jù)集,再使用update(**data)來更新數(shù)據(jù),不能使用get,否則會報錯:AttributeError: ’模型類’ object has no attribute ’update’

get查詢獲取到的是數(shù)據(jù)對象,而filter查詢獲取到的是數(shù)據(jù)集

class UserProfileDetail(View): ’’’ 詳情視圖 ’’’ def put(self, request, id): data_dict = json.loads(request.body.decode()) userInfo = UserProfile.objects.get(id=id) if not userInfo: return HttpResponse('查詢的用Info戶不存在', status=404) UserProfile.objects.filter(id=id).update(**data_dict) userInfo = UserProfile.objects.get(id=id) user_dict = { ’id’: userInfo.id, ’username’: userInfo.username, ’password’: userInfo.password, ’open_id’: userInfo.open_id, ’code’: userInfo.code } return http.JsonResponse(user_dict, status=200)五、刪除某一條數(shù)據(jù)

class UserProfileDetail(View): ’’’ 詳情視圖 ’’’ def delete(self, request, id): userInfo = UserProfile.objects.filter(id=id) if not userInfo: return HttpResponse('刪除的數(shù)據(jù)不存在', status=404)UserProfile.objects.filter(id=id).delete() return HttpResponse('數(shù)據(jù)刪除成功', status=204)

上述的操作只能適用于數(shù)據(jù)表中字段很少的情況,如果字段較多,寫起來會很麻煩,不利于開發(fā)

總結(jié)

到此這篇關(guān)于Django學(xué)習(xí)筆記之View操作指南的文章就介紹到這了,更多相關(guān)Django View操作內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
欧美亚洲三级| 国产麻豆一区二区三区| 97久久亚洲| 国产盗摄——sm在线视频| 日韩综合小视频| 精品三区视频| 国产一区2区在线观看| 精品久久国产一区| 久久99国产精品视频| 亚洲国产影院| 欧美国产精品| av资源新版天堂在线| 国产麻豆久久| 先锋影音国产一区| 亚洲精品进入| 欧美国产亚洲精品| 日韩欧美三级| 香蕉视频成人在线观看| 午夜天堂精品久久久久| 欧美亚洲福利| 国产精久久久| 精品免费av| 欧美成人精品| 欧美在线首页| 999久久久免费精品国产| 亚洲欧美日韩在线观看a三区| 亚洲男人在线| 国产精品theporn| 日本免费新一区视频| 国产精品久久国产愉拍| 正在播放日韩精品| 亚洲一区二区三区中文字幕在线观看| 日本欧美韩国一区三区| 97精品视频在线看| 中文无码日韩欧| 国产日韩三级| 欧美久久精品一级c片| 日韩欧美2区| 久久精品二区三区| 国产精品九九| 女同性一区二区三区人了人一| 国产欧美激情| 久久国产精品久久久久久电车| 粉嫩av一区二区三区四区五区| 久色成人在线| 国精品一区二区| 精品黄色一级片| 中文字幕日韩高清在线| 欧美sss在线视频| 久久99久久久精品欧美| 精品在线91| 国产精品男女| 久久久久97| 日韩成人一级| 国产综合视频| 丰满少妇一区| 日本在线视频一区二区| 久久蜜桃精品| 成人午夜网址| 奇米狠狠一区二区三区| 亚洲成人日韩| 中文一区一区三区高中清不卡免费| 亚洲久草在线| 欧美大黑bbbbbbbbb在线| 蜜桃av一区二区在线观看| 红桃视频国产精品| 午夜影院一区| 久久精品国产久精国产爱| 视频一区免费在线观看| 日韩大片在线| 国产一区2区| 国产极品一区| 国产精品.xx视频.xxtv| 日本午夜精品久久久| 亚洲三级视频| 日韩三级视频| 亚州av乱码久久精品蜜桃| 欧美成人精品三级网站| 正在播放日韩精品| 欧美日韩国产观看视频| 国产乱子精品一区二区在线观看 | 天使萌一区二区三区免费观看| 成人在线超碰| 91视频一区| 欧美成人高清| 老牛影视一区二区三区| 亚洲三级国产| 欧美激情综合| 成人自拍av| 麻豆mv在线观看| 欧美成人高清| 综合一区二区三区| 你懂的亚洲视频| 日韩毛片视频| 久久亚洲精品伦理| 久久国产精品免费精品3p| 国产福利一区二区精品秒拍| 国内不卡的一区二区三区中文字幕| 精品视频国产| 欧美在线影院| 欧美日韩夜夜| 久久免费黄色| 日韩精品成人| 日韩在线综合| 欧美日韩免费观看一区=区三区| 亚洲综合精品四区| 国产欧美三级| 不卡在线一区| 美腿丝袜亚洲一区| 欧美在线影院| 亚洲不卡系列| 久久精品99国产精品| 视频福利一区| 日韩av一二三| 性欧美69xoxoxoxo| 狂野欧美性猛交xxxx| 国产欧美日韩一区二区三区在线| 涩涩涩久久久成人精品| av资源亚洲| 日本 国产 欧美色综合| 91视频一区| 国产亚洲久久| 亚洲专区视频| 女人天堂亚洲aⅴ在线观看| 色婷婷综合网| 久久精品一区二区三区中文字幕| 精品1区2区3区4区| 久久久久免费av| 国产激情在线播放| 老司机精品在线| 国产毛片久久久| 欧美日韩91| 日韩激情av在线| 亚欧洲精品视频在线观看| 国产传媒在线| 精品视频一区二区三区在线观看| 亚洲精品在线国产| 老司机精品在线| 日韩精品一二三区| 欧美美女一区| 伊人久久大香线蕉av不卡| 久久中文精品| 精品国产一区二区三区性色av| 日韩精品一页| 日韩高清欧美激情| 日韩av中文字幕一区二区 | 日韩在线观看一区二区| 91久久久精品国产| 亚洲国内精品| 成人av二区| 亚洲理论在线| 国产精品密蕾丝视频下载| 国产成人精品一区二区三区免费| 日韩伦理一区| 五月国产精品| 精品国产午夜肉伦伦影院| 亚洲国产一区二区在线观看| 伊人久久一区| 国产精品免费不| 精品久久久网| 模特精品在线| 在线国产精品一区| 久久亚洲一区| 91精品国产自产精品男人的天堂 | 成人在线免费观看网站| 久久精品国产福利| 亚洲国产成人二区| 欧美在线观看视频一区| 免费日韩av| 精品国产亚洲一区二区在线观看| 美女久久久久久| 99tv成人| 亚洲精品护士| 欧美a在线观看| 久久精品女人| 999精品在线| 亚洲精品高潮| 香蕉久久久久久| 久久久久久久欧美精品| 日韩视频一二区| 欧美国产中文高清| 日韩毛片视频| 日韩一区二区免费看| 日本精品另类| 999久久久精品国产| 亚洲精品欧美| 欧美成人a交片免费看| 亚洲区第一页| 久久青草久久| 亚洲精品九九| 久久理论电影| 欧美成人aaa| 亚洲一二三区视频| 免费国产自久久久久三四区久久| 国产免费播放一区二区| 综合激情在线| 岛国精品一区| 国产精品一线| 日韩高清在线观看一区二区| 亚洲激情欧美|