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数组的处理代码
Jan 04 Python
Python之eval()函数危险性浅析
Jul 03 Python
Python3.2中的字符串函数学习总结
Apr 23 Python
python 如何快速找出两个电子表中数据的差异
May 26 Python
对pandas的dataframe绘图并保存的实现方法
Aug 05 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
Python3爬楼梯算法示例
Mar 04 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
详解python uiautomator2 watcher的使用方法
Sep 09 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
python框架flask入门之环境搭建及开启调试
Jun 07 Python
python 如何对logging日志封装
Dec 02 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
用PHP4访问Oracle815
2006/10/09 PHP
SMARTY学习手记
2007/01/04 PHP
php cURL和Rolling cURL并发方式比较
2013/10/30 PHP
php不使用插件导出excel的简单方法
2014/03/04 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
php 根据自增id创建唯一编号类
2017/04/06 PHP
php查看一个变量的占用内存的实例代码
2020/03/29 PHP
js兼容的placeholder属性详解
2013/08/18 Javascript
jQuery实现鼠标划过添加和删除class的方法
2015/06/26 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
了解javascript中变量及函数的提升
2019/05/27 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
python算法学习之基数排序实例
2013/12/18 Python
Python3.6简单反射操作示例
2018/06/14 Python
Flask框架通过Flask_login实现用户登录功能示例
2018/07/17 Python
Python操作Excel把数据分给sheet
2020/05/20 Python
利用Python实现朋友圈中的九宫格图片效果
2020/09/03 Python
广州迈达威.net面试题目
2012/03/10 面试题
Java程序员面试题
2013/07/15 面试题
成人毕业生自我鉴定
2013/10/18 职场文书
国际经济贸易专业推荐信
2013/11/06 职场文书
企业项目策划书
2014/01/11 职场文书
大学自主招生自荐信范文
2014/02/26 职场文书
歌唱比赛策划方案
2014/06/06 职场文书
学校门卫岗位职责范本
2014/06/30 职场文书
2014年残联工作总结
2014/11/21 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
房地产项目合作意向书
2015/05/08 职场文书
2015银行年终工作总结范文
2015/05/26 职场文书
纪检监察立案决定书
2015/06/24 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
vue中data改变后让视图同步更新的方法
2021/03/29 Vue.js
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
使用CSS实现一个搜索引擎的原理解析
2021/09/25 HTML / CSS