怎么在Django中对视图进行操作

  介绍

本篇文章给大家分享的是有关怎么在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;

怎么在Django中对视图进行操作