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的列表中利用remove()方法删除元素的教程
May 21 Python
详解python里使用正则表达式的全匹配功能
Oct 19 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
Python中文件的读取和写入操作
Apr 27 Python
Python函数参数操作详解
Aug 03 Python
Python numpy中矩阵的基本用法汇总
Feb 12 Python
django-crontab实现服务端的定时任务的示例代码
Feb 17 Python
python GUI库图形界面开发之PyQt5单行文本框控件QLineEdit详细使用方法与实例
Feb 27 Python
解决pyinstaller 打包exe文件太大,用pipenv 缩小exe的问题
Jul 13 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
分位数回归模型quantile regeression应用详解及示例教程
Nov 02 Python
Python的property属性详细讲解
Apr 11 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
星际中的相关伤害
2020/03/04 星际争霸
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
PHP网站安装程序制作的原理、步骤、注意事项和示例代码
2010/08/01 PHP
关于查看MSSQL 数据库 用户每个表 占用的空间大小
2013/06/21 PHP
php生成gif动画的方法
2015/11/05 PHP
解读PHP的Yii框架中请求与响应的处理流程
2016/03/17 PHP
javascript的console.log()用法小结
2012/05/31 Javascript
Nodejs极简入门教程(三):进程
2014/10/27 NodeJs
javascript使用avalon绑定实现checkbox全选
2015/05/06 Javascript
浅析angularJS中的ui-router和ng-grid模块
2016/05/20 Javascript
BootStrap glyphicon图标无法显示的解决方法
2016/09/06 Javascript
浅析jsopn跨域请求原理及cors(跨域资源共享)的完美解决方法
2017/02/06 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
怎么使用javascript深度拷贝一个数组
2019/06/06 Javascript
vue+element加入签名效果(移动端可用)
2019/06/17 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
JS如何实现手机端输入验证码效果
2020/05/13 Javascript
JavaScript动画实例之粒子文本的实现方法详解
2020/07/28 Javascript
[33:23]VG vs Pain 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现的批量下载RFC文档
2015/03/10 Python
python3+PyQt5实现自定义窗口部件Counters
2018/04/20 Python
在python中按照特定顺序访问字典的方法详解
2018/12/14 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
Django获取应用下的所有models的例子
2019/08/30 Python
如何使用Python多线程测试并发漏洞
2019/12/18 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
微博营销计划书
2014/01/10 职场文书
大学同学会活动方案
2014/08/20 职场文书
女生抽烟检讨书
2014/10/05 职场文书
员工年终考核评语
2014/12/31 职场文书
python实现三次密码验证的示例
2021/04/29 Python
Java中Quartz高可用定时任务快速入门
2022/04/03 Java/Android
vue报错function () { [native code] },无法出现我们想要的内容 Unknown custom element
2022/04/11 Vue.js
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers