时间:2021-05-22
在对Django的视图有所了解后,我们进一步对视图的分类进行讨论。视图有两种类型,划分为基于功能的视图和基于类的视图,两种视图在功能和使用上各有不同。我们需要对它们进行学习,并能够分清这两种视图的不同之处。下面我们就Django视图的类型带来详解。
基于函数的视图是使用python中的函数编写的,该函数以HttpRequest对象作为参数并返回HttpResponse对象。基于功能的视图通常分为4种基本策略,即CRUD(创建,检索,更新,删除)。CRUD是用于开发的任何框架的基础。
# import the standard Django Model# from built-in libraryfrom django.db import models# declare a new model with a name "GeeksModel"class GeeksModel(models.Model): # fields of the model title = models.CharField(max_length = 200) description = models.TextField() # renames the instances of the model # with their title name def __str__(self): return self.title基于类的视图提供了一种将视图实现为Python对象而非函数的替代方法。与基于函数的视图相比,基于类的视图更易于管理。
from django.views.generic.list import ListViewfrom .models import GeeksModelclass GeeksList(ListView): # specify the model for list viewmodel = GeeksModel以上就是Django视图的类型,大家对基础的内容有所掌握后,可以动手尝试下代码部分的运行,加深对两种不同视图的理解。
内容扩展:
ListView
在我们的博客应用中,有几个视图函数是从数据库中获取文章(Post)列表数据的:
blog/views.pydef index(request): # ...def archive(request, year, month): # ...def category(request, pk): # ...def tag(request, pk): # ...这些视图函数都是从数据库中获取文章(Post)列表,唯一的区别就是获取的文章列表可能不同。比如 index 获取全部文章列表,category 获取某个分类下的文章列表。
到此这篇关于Django视图类型总结的文章就介绍到这了,更多相关Django视图有哪些类型内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
django-rest-framework类视图拓展自django的类视图,只是针对数据的序列化和反序列化等逻辑做了封装。django-rest-framewo
1、创建一个django项目使用django-admin.pystartprojectMyDjangoSite参考这里2、建立视图fromdjango.http
Django中间件在http请求到达视图函数之前和视图函数return之后,django会根据自己的规则在合适的时机执行中间件中相应的方法。中间件的执行流程1、
视图在django中,视图对WEB请求进行回应视图接收reqeust对象作为第一个参数,包含了请求的信息视图就是一个Python函数,被定义在views.py中
在Django中对于基于函数的视图我们可以@csrf_exempt注解来标识一个视图可以被跨域访问。那么对于基于类的视图,我们应该怎么办呢?简单来说可以有两种访