好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > Django學習筆記之View操作指南

Django學習筆記之View操作指南

熱門標簽:西藏快速地圖標注地點 如何在地圖標注文字 廈門crm外呼系統如何 n400電話申請多少錢 女王谷地圖標注 ai地圖標注 長春人工智能電銷機器人官網 百應ai電銷機器人鄭州 地圖標注推廣單頁

Django的View

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

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

導入:from django.views import View

一、查詢所有數據

查詢數據在自定義的視圖類中定義get方法

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

在JsonResponse必須添加safe=False參數,否則會報錯: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) 

二、創建數據

使用django中的json,把前端傳遞過來的json數據轉成字典

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

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): 
  # 獲取數據, json轉字典 
  dict_data = json.loads(request.body.decode()) 
  print(dict_data) 
  nick_name = dict_data.get('nickName') 
  code = dict_data.get('code') 
  open_id = "xljsafwjeilnvaiwogjirgnlg" 
  # 校驗數據 
  result = UserProfile.objects.filter(Q(code=code) | Q(open_id=open_id)) 
  if not result.exists(): 
   # 數據入庫 
   user = UserProfile.objects.create( username=nick_name, open_id=open_id, code=code ) 
   # 返回響應 
   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)

三、查詢某一條數據(單個)

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

數據轉換

返回響應

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) 

四、更新一條數據

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

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

get查詢獲取到的是數據對象,而filter查詢獲取到的是數據集

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)

五、刪除某一條數據

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

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

總結

到此這篇關于Django學習筆記之View操作指南的文章就介紹到這了,更多相關Django View操作內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • Golang 并發以及通道的使用方式
  • golang 如何替換掉字符串里面的換行符\n
  • spring boot集成mongodb的增刪改查的示例代碼
  • go并發實現素數篩的代碼
  • golang 中的 nil的場景分析
  • 完美解決go Fscanf 在讀取文件時出現的問題

標簽:綿陽 內江 興安盟 廊坊 黔東 亳州 渭南 拉薩

巨人網絡通訊聲明:本文標題《Django學習筆記之View操作指南》,本文關鍵詞  Django,學習,筆記,之,View,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Django學習筆記之View操作指南》相關的同類信息!
  • 本頁收集關于Django學習筆記之View操作指南的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产亚洲亚洲精品777| 好硬好爽| 家庭教师波多野结衣在线播放| 自拍亚洲欧美另类动漫| 欧美性潮喷XXXXX免费视频看| 在公车上忘穿内裤嗯啊色h文| 欧美一线高本道| 啊啊啊插死我了| 国产一区久久午夜色情3| 耻辱の中出し授业大桥未久字幕| 日本XXXX高清色视频在线播放| 国产色秀视频| 护士videossexo另类| 罗宾被爆漫画羞羞漫画| 蜜桃视频app色版网站 | 我把护士日出水了视频90分钟| 国产a高清| japanxxxxhd日本黑人| 我是sao货(h)| Xiao77论坛网友自拍欧美| 成人??高潮片免费视频鉴黄师| 最新精品国偷自产在线学生| 成品人片α免费观看| 国产精品久久久久有声小说| 和平精英未成年充值了钱怎么退款| 日本高清不卡一区二区三区| 中文字幕热久久久久久久 | 国产亚洲成归v人片在线观看 | 男女羞羞小视频网站| 绝对浪荡电影| 又色又爽又黄的视频软件app| free×性护士videos欧美| 精产国品一二三产区99771| 欧美另类69xxxxx末成年| 久久国产精品老女人| 很黄很色视频| 爽?舒服?好硬好涨视频| 女性裸体秘?不遮胸图片| 18成禁人视频| 黑人寄宿中文字幕| 宝贝真敏感…用手指你就喷了|