本篇文章给大家分享的是有关怎么在Django中对视图进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。
Django的视图
一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受网络请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404年错误,一个XML文档,或者一张图片只
无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓,只要它在你当前项目目录下面。除此之外没有更多的要求了——可以说“没有什么神奇的地方”。为了将代码放在某处,大家约定成俗将视图放置在项目(项目)或应用程序(app)目录中的名为视图。py的文件中。
<>强导入:强> <代码>从django。视图导入视图代码>
一、查询所有数据
查询数据在自定义的视图类中定义得到方法
使用django。http模块中的JsonResponse对非json格式的数据做返回处理
在JsonResponse必须添加安全=False参数,否则会报错:为了让non-dict对象进行序列化设置安全
得到django.http import HttpResponse 得到django import  http #,Create your  views 这里又是; class UserView(视图): ,& # 39;& # 39;& # 39;,用户视图,& # 39;& # 39;& # 39;, ,def (自我,,请求):, #,才能模型类实例化对象, 时间=users 才能;UserProfile.objects.all (), 时间=user_list 才能;[], for 才能;user 用户:拷贝, ,,user_dict =, {, ,,,& # 39;id # 39;:, user.id,, ,,,& # 39;用户名# 39;:,user.username,, ,,,& # 39;密码# 39;:,user.password,, ,,,& # 39;open_id& # 39;:, user.open_id,, ,,,& # 39;代码# 39;:,user.code ,,}, user_list.append才能(user_dict) return 才能http.JsonResponse (user_list)
二、创建数据
使用django中的json,把前端传递过来的json数据转成字典
使用django.db。模型模块中的问来查询多个字段在数据库中是否存在
得到django.views import View 得到django.http import  HttpResponse 得到django import  http 得到django.db.models import  Q import json class UserView(视图): ,& # 39;& # 39;& # 39;,用户视图,& # 39;& # 39;& # 39;, ,def 邮政(自我,,请求):, #,才能获取数据,,json转字典, 时间=dict_data 才能;json.loads (request.body.decode ()), 打印(dict_data),才能 nick_name 才能=,dict_data.get(& # 39;昵称# 39;), code 才能=,dict_data.get(& # 39;代码# 39;), open_id =,才能“xljsafwjeilnvaiwogjirgnlg", #才能,校验数据, result 才能=,UserProfile.objects.filter (Q(代码=代码),|,Q (open_id=open_id)), if 才能;not  result.exists ():, ,,#,数据入库, ,,user =, UserProfile.objects.create(用户名=nick_name大敌;open_id=open_id,代码=code ), ,,#,返回响应, ,,user_dict =, {, ,,,& # 39;id # 39;:, user.id,, ,,,& # 39;用户名# 39;:,user.username,, ,,,& # 39;密码# 39;:,user.password,, ,,,& # 39;open_id& # 39;:, user.open_id,, ,,,& # 39;代码# 39;:,user.code ,,}, ,,return http.JsonResponse (user_dict), return 才能;http.JsonResponse(“用户已存在,,,安全=False,状态=202)
三、查询某一条数据(单个)
前端需要传递pk/id值,通过pk/id查询数据,查询一条数据必须用得到,不能用过滤器,否则会报错:AttributeError: & # 39; QuerySet& # 39;对象没有属性& # 39;id # 39;
数据转换
返回响应
class UserProfileDetail(视图):, ,& # 39;& # 39;& # 39;,详情视图,& # 39;& # 39;& # 39;, ,def (自我,,请求):, 时间=userInfo 才能;UserProfile.objects.get (id=id), if 才能;not 用户信息:, ,,return HttpResponse(“查询的户用信息不存在,,,的状态=404),,,,, user_dict =,{才能, ,,& # 39;id # 39;:, userInfo.id,, ,,& # 39;用户名# 39;:,userInfo.username,, ,,& # 39;密码# 39;:,userInfo.password,, ,,& # 39;open_id& # 39;:, userInfo.open_id,, ,,& # 39;代码# 39;:,userInfo.code ,,}, return 才能http.JsonResponse (user_dict,状态=200)
四,更新一条数据
前端需要传递pk/id值,通过pk/id查询数据,查询一条数据必须用得到,不能用过滤器,否则会报错:AttributeError: & # 39; QuerySet& # 39;对象没有属性& # 39;id # 39;