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实现的最近最少使用算法
Jul 10 Python
Python使用Paramiko模块编写脚本进行远程服务器操作
May 05 Python
python中字符串比较使用is、==和cmp()总结
Mar 18 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
Python实现最常见加密方式详解
Jul 13 Python
python的pygal模块绘制反正切函数图像方法
Jul 16 Python
python的pyecharts绘制各种图表详细(附代码)
Nov 11 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
tensorflow 环境变量设置方式
Feb 06 Python
python操作yaml说明
Apr 08 Python
Windows 平台做 Python 开发的最佳组合(推荐)
Jul 27 Python
python对 MySQL 数据库进行增删改查的脚本
Oct 22 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/11/26 PHP
codeigniter集成ucenter1.6双向通信的解决办法
2014/06/12 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
laravel框架中表单请求类型和CSRF防护实例分析
2019/11/23 PHP
网页自动刷新,不产生嗒嗒声的一个解决方法
2007/03/27 Javascript
javaScript 数值型和字符串型之间的转换
2009/07/25 Javascript
JavaScript单元测试ABC
2012/04/12 Javascript
Jquery为单选框checkbox绑定单击click事件
2012/12/18 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
设置jsf的选择框h:selectOneMenu为不可编辑状态的方法
2014/01/07 Javascript
JavaScript在IE和FF下的兼容性问题
2014/05/19 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
Juery解决tablesorter中文排序和字符范围的方法
2015/05/06 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
详解堆的javascript实现方法
2016/11/29 Javascript
BootStrap实现带关闭按钮功能
2017/02/15 Javascript
JavaScript和JQuery获取DIV值的方法示例
2017/03/07 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
JS实现根据详细地址获取经纬度功能示例
2019/04/16 Javascript
Vuejs中的watch实例详解(监听者)
2020/01/05 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
Python实现字符串的逆序 C++字符串逆序算法
2020/05/28 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
2019/05/07 Python
Python 实现Serial 与STM32J进行串口通讯
2019/12/18 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
快速解决jupyter notebook启动需要密码的问题
2020/04/21 Python
Python docutils文档编译过程方法解析
2020/06/23 Python
Python 开发工具通过 agent 代理使用的方法
2020/09/27 Python
台湾森森购物网:U-mall
2017/10/16 全球购物
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
公务员转正考察材料
2014/02/07 职场文书
政治学求职信
2014/06/03 职场文书
中国合伙人观后感
2015/06/02 职场文书
仓库管理制度范本
2015/08/04 职场文书
Css预编语言及区别详解
2021/04/25 HTML / CSS
手写实现JS中的new
2021/11/07 Javascript