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实现视频下载功能
Mar 14 Python
Python快速排序算法实例分析
Nov 29 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
详解python3中的真值测试
Aug 13 Python
python 移动图片到另外一个文件夹的实例
Jan 10 Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 Python
python 三元运算符使用解析
Sep 16 Python
python3 实现函数写文件路径的正确方法
Nov 27 Python
python GUI库图形界面开发之PyQt5 UI主线程与耗时线程分离详细方法实例
Feb 26 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
如何写python的配置文件
Jun 07 Python
python中的列表和元组区别分析
Dec 30 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
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP 输出简单动态WAP页面
2009/06/09 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
Javascript的一种模块模式
2008/03/22 Javascript
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
JavaScript 编写匿名函数的几种方法
2010/02/21 Javascript
javascript 事件绑定问题
2011/01/01 Javascript
23个Javascript弹出窗口特效整理
2011/02/25 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
jQuery获取(选中)单选,复选框,下拉框中的值
2014/02/21 Javascript
微信JS接口汇总及使用详解
2015/01/09 Javascript
纯JavaScript代码实现文本比较工具
2016/02/17 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
Angular 2父子组件数据传递之@Input和@Output详解 (上)
2017/07/05 Javascript
vue插件实现v-model功能
2018/09/10 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
vue页面更新patch的实现示例
2020/03/25 Javascript
python基础教程之类class定义使用方法
2014/02/20 Python
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
详解Python3注释知识点
2019/02/19 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
Python字符串格式化常用手段及注意事项
2020/06/17 Python
网络通讯中,端口有什么含义,端口的取值范围
2012/11/23 面试题
小车司机岗位职责
2013/11/25 职场文书
建筑工程专业学生的自我评价
2013/12/25 职场文书
雪山饭庄的创业计划书范文
2014/01/18 职场文书
总经理的岗位职责
2014/02/23 职场文书
保护环境建议书100字
2014/05/13 职场文书
基层党员公开承诺书
2014/05/29 职场文书
教师节寄语2015
2015/03/23 职场文书
详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)
2021/07/01 HTML / CSS
一小时学会TensorFlow2之基本操作2实例代码
2021/09/04 Python
设置IIS Express并发数
2022/07/07 Servers