iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在Django中对View进行操作
  • 474
分享到

怎么在Django中对View进行操作

2023-06-14 06:06:40 474人浏览 薄情痞子
摘要

本篇文章给大家分享的是有关怎么在Django中对View进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。DjanGo的View一个视图函数(类),简称视图,是一个简单的p

本篇文章给大家分享的是有关怎么在Django中对View进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

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进行操作,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网精选频道。

--结束END--

本文标题: 怎么在Django中对View进行操作

本文链接: https://www.lsjlt.com/news/268733.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在Django中对View进行操作
    本篇文章给大家分享的是有关怎么在Django中对View进行操作,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Django的View一个视图函数(类),简称视图,是一个简单的P...
    99+
    2023-06-14
  • 怎么在postgresql中对主键进行操作
    在postgresql中操作主键的方法:1.启动postgresql服务;2.登录postgresql数据库;3.使用数据库;4.在数据库新建表;5.执行命令命令操作主键;具体步骤如下:首先,在命令行中启动postgresql服务;net ...
    99+
    2024-04-02
  • 怎么在Bash中对数组进行操作
    这篇文章给大家介绍怎么在Bash中对数组进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。BASH只支持一维数组,但参数个数没有限制。如声明一个数组:declare -a array(其实不用声...
    99+
    2023-06-09
  • 怎么在MongoDB中对group聚合进行操作
    这篇文章将为大家详细讲解有关怎么在MongoDB中对group聚合进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。MongoDB 聚合MongoDB中聚合(aggregate)主要用于...
    99+
    2023-06-14
  • 怎么在linux中对awk数组进行操作
    本篇文章为大家展示了怎么在linux中对awk数组进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、定义方法可以用数值作数组索引(下标)Tarray[1]=“cheng mo”Tarray[...
    99+
    2023-06-13
  • 怎么在JDBC中对resutset接口进行操作
    这篇文章将为大家详细讲解有关怎么在JDBC中对resutset接口进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1. ResultSet细节1功能:...
    99+
    2024-04-02
  • ADO.NET中怎么对SqlDataAdapter进行操作
    本篇文章为大家展示了ADO.NET中怎么对SqlDataAdapter进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。ADO.NET SqlDataAdapter对象SqlDataAdapte...
    99+
    2023-06-17
  • C++中怎么对Test进行操作
    C++中怎么对Test进行操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。静态测试 C++Test内嵌了业界最出名的Effective C++(epcc)、M...
    99+
    2023-06-17
  • node.js中怎么对CQS进行操作
    本篇文章为大家展示了node.js中怎么对CQS进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。  怎样使用node.js来操作CQS  安装:  $npmi...
    99+
    2024-04-02
  • JavaScript 中怎么对Cookie进行操作
    本篇文章为大家展示了JavaScript 中怎么对Cookie进行操作,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Cookie 只是存储在计算机浏览器中的小型文本...
    99+
    2024-04-02
  • C#中怎么对Word进行操作
    C#中怎么对Word进行操作,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。导入COM库:Microsoft word 11.0 Object Library.引用里面就增加了:...
    99+
    2023-06-17
  • C++ 中怎么对Endian进行操作
    C++ 中怎么对Endian进行操作,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.判断CPU的C++ Endian:union {&nb...
    99+
    2023-06-17
  • C#中怎么对StreamWriter进行操作
    今天就跟大家聊聊有关C#中怎么对StreamWriter进行操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。C# StreamWriter写文件的操作实例://实例化一个保存文件对...
    99+
    2023-06-17
  • JavaScript中怎么对二进制进行操作
    这篇文章将为大家详细讲解有关JavaScript中怎么对二进制进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。二进制数据在JS程序里的表达现今世界上几...
    99+
    2024-04-02
  • 怎么在python中对列表进行分片操作
    今天就跟大家聊聊有关怎么在python中对列表进行分片操作,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyt...
    99+
    2023-06-14
  • 怎么在NestJs中使用Mongoose对MongoDB进行操作
    这篇文章主要介绍了怎么在NestJs中使用Mongoose对MongoDB进行操作,编程网小编觉得不错,现在分享给大家,也给大家做个参考,一起跟随编程网小编来看看吧!首先是安装所需依赖npm install --save...
    99+
    2023-06-06
  • 怎么在Python中利用Selenium对Cookie进行操作
    本文章向大家介绍怎么在Python中利用Selenium对Cookie进行操作的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象...
    99+
    2023-06-06
  • 怎么在Python中使用Selenium对Cookie进行操作
    这篇文章给大家介绍怎么在Python中使用Selenium对Cookie进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端开发,众...
    99+
    2023-06-14
  • node.js中怎么对文件进行操作
    这篇文章将为大家详细讲解有关node.js中怎么对文件进行操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、文件操作在文件操作里,主要是有文件读写,创建...
    99+
    2024-04-02
  • Jave中怎么对枚举进行操作
    这篇文章给大家介绍Jave中怎么对枚举进行操作,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。枚举其实就是一种类型,跟int, char 这种差不多,就是定义变量时限制输入的,你只能够赋enum里面规定的值。定义枚举 方...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作