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中使用smtplib和email模块发送邮件实例
Apr 22 Python
python字符串替换示例
Apr 24 Python
python获取本机外网ip的方法
Apr 15 Python
Django中间件工作流程及写法实例代码
Feb 06 Python
基于Python3.6+splinter实现自动抢火车票
Sep 25 Python
用python爬取租房网站信息的代码
Dec 14 Python
解决python中的幂函数、指数函数问题
Nov 25 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
导致python中import错误的原因是什么
Jul 01 Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 Python
Opencv中cv2.floodFill算法的使用
Jun 18 Python
Python列表的索引与切片
Apr 07 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
西德产收音机
2021/03/01 无线电
解析PHP无限级分类方法及代码
2013/06/21 PHP
php Session无效分析资料整理
2016/11/29 PHP
Laravel 5使用Laravel Excel实现Excel/CSV文件导入导出的功能详解
2017/10/11 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
event.currentTarget与event.target的区别介绍
2012/12/31 Javascript
如何用JavaScript动态呼叫函数(两种方式)
2013/05/03 Javascript
JavaScript日期时间格式化函数分享
2014/05/05 Javascript
jquery实现的点击翻书效果代码
2015/11/04 Javascript
第三章之Bootstrap 表格与按钮功能
2016/04/25 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Angularjs自定义指令实现分页插件(DEMO)
2017/09/16 Javascript
js与jQuery实现获取table中的数据并拼成json字符串操作示例
2018/07/12 jQuery
详解Vue之父子组件传值
2019/04/01 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
layui.use模块外部使用其内部定义的js封装函数方法
2019/09/16 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
[43:51]2018DOTA2亚洲邀请赛3月30日 小组赛B组 EG VS Secret
2018/03/31 DOTA
Python 匹配任意字符(包括换行符)的正则表达式写法
2009/10/29 Python
Python 读取 YUV(NV12) 视频文件实例
2019/12/09 Python
Python数据正态性检验实现过程
2020/04/18 Python
python中元组的用法整理
2020/06/15 Python
基于css3 animate制作绚丽的动画效果
2015/11/24 HTML / CSS
HTML5的标签的代码的简单介绍 HTML5标签的简介
2012/05/28 HTML / CSS
简历的个人自我评价范文
2014/01/03 职场文书
前厅收银主管岗位职责
2014/02/04 职场文书
函授自我鉴定范文
2014/02/06 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
公证委托书
2014/08/01 职场文书
2015年银行个人工作总结
2015/05/14 职场文书
网络营销实训总结
2015/08/03 职场文书