Django视图类型总结


Posted in Python onFebruary 17, 2021

在对Django的视图有所了解后,我们进一步对视图的分类进行讨论。视图有两种类型,划分为基于功能的视图和基于类的视图,两种视图在功能和使用上各有不同。我们需要对它们进行学习,并能够分清这两种视图的不同之处。下面我们就Django视图的类型带来详解。

1、基于功能的视图

基于函数的视图是使用python中的函数编写的,该函数以HttpRequest对象作为参数并返回HttpResponse对象。基于功能的视图通常分为4种基本策略,即CRUD(创建,检索,更新,删除)。CRUD是用于开发的任何框架的基础。

# import the standard Django Model
# from built-in library
from 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

2、基于类的视图

基于类的视图提供了一种将视图实现为Python对象而非函数的替代方法。与基于函数的视图相比,基于类的视图更易于管理。

from django.views.generic.list import ListView
from .models import GeeksModel
class GeeksList(ListView):
  # specify the model for list view
model = GeeksModel

以上就是Django视图的类型,大家对基础的内容有所掌握后,可以动手尝试下代码部分的运行,加深对两种不同视图的理解。

内容扩展:

ListView

在我们的博客应用中,有几个视图函数是从数据库中获取文章(Post)列表数据的:

blog/views.py

def index(request):
  # ...

def archive(request, year, month):
  # ...

def category(request, pk):
  # ...

def tag(request, pk):
  # ...

这些视图函数都是从数据库中获取文章(Post)列表,唯一的区别就是获取的文章列表可能不同。比如 index 获取全部文章列表,category 获取某个分类下的文章列表。

到此这篇关于Django视图类型总结的文章就介绍到这了,更多相关Django视图有哪些类型内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 错误和异常小结
Oct 09 Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 Python
pycharm 主题theme设置调整仿sublime的方法
May 23 Python
解决sublime+python3无法输出中文的问题
Dec 12 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
python使用sessions模拟登录淘宝的方式
Aug 16 Python
python 遗传算法求函数极值的实现代码
Feb 11 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python3.9又更新了:dict内置新功能
Feb 28 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
Python结合Window计划任务监测邮件的示例代码
Aug 05 Python
python中用Scrapy实现定时爬虫的实例讲解
Jan 18 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 #Python
Python3+Appium安装及Appium模拟微信登录方法详解
Feb 16 #Python
Python3使用Selenium获取session和token方法详解
Feb 16 #Python
Python3+PyCharm+Django+Django REST framework配置与简单开发教程
Feb 16 #Python
PyCharm+Miniconda3安装配置教程详解
Feb 16 #Python
Python3+Django get/post请求实现教程详解
Feb 16 #Python
Python3+Flask安装使用教程详解
Feb 16 #Python
You might like
PHP 各种排序算法实现代码
2009/08/20 PHP
destoon实现商铺管理主页设置增加新菜单的方法
2014/06/26 PHP
php类的定义与继承用法实例
2015/07/07 PHP
php读取和保存base64编码的图片内容
2017/04/22 PHP
js 弹出框 替代浏览器的弹出框
2010/10/29 Javascript
JavaScript XML和string相互转化实现代码
2011/07/04 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
javaScript的函数对象的声明详解
2015/02/06 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
js判断当前页面用什么浏览器打开的方法
2016/01/06 Javascript
JS 实现计算器详解及实例代码(一)
2017/01/08 Javascript
js实现登录与注册界面
2017/11/01 Javascript
vuex的简单使用教程
2018/02/02 Javascript
Vue render深入开发讲解
2018/04/13 Javascript
详解解决使用axios发送json后台接收不到的问题
2018/06/27 Javascript
详解JavaScript添加给定的标签选项
2018/09/17 Javascript
关于AOP在JS中的实现与应用详解
2019/05/06 Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
2019/05/21 Javascript
使用Vue开发自己的Chrome扩展程序过程详解
2019/06/21 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue中touch和click共存的解决方式
2020/07/28 Javascript
python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
2013/12/06 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
python中requests小技巧
2017/05/10 Python
对python制作自己的数据集实例讲解
2018/12/12 Python
Python代码块及缓存机制原理详解
2019/12/13 Python
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
大专生的学习自我评价
2013/12/04 职场文书
涉及车辆房产分割的离婚协议书范文
2014/10/12 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
2016年中学端午节主题活动总结
2016/04/01 职场文书
创业计划书之养殖业
2019/10/11 职场文书
详解Python+OpenCV进行基础的图像操作
2022/02/15 Python
关于CSS自定义属性与前端页面的主题切换问题
2022/03/21 HTML / CSS
vue实现Toast组件轻提示
2022/04/10 Vue.js