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生成不重复随机值的方法
May 11 Python
Python聚类算法之凝聚层次聚类实例分析
Nov 20 Python
python实现二叉树的遍历
Dec 11 Python
Python使用ctypes调用C/C++的方法
Jan 29 Python
深入学习python多线程与GIL
Aug 26 Python
Python json读写方式和字典相互转化
Apr 18 Python
详解Windows下PyCharm安装Numpy包及无法安装问题解决方案
Jun 18 Python
使用pygame实现垃圾分类小游戏功能(已获校级二等奖)
Jul 23 Python
Python使用lambda抛出异常实现方法解析
Aug 20 Python
python类共享变量操作
Sep 03 Python
Python类的继承super相关原理解析
Oct 22 Python
python爬虫框架feapde的使用简介
Apr 20 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 unset全局变量运用问题的深入解析
2013/06/17 PHP
解析php入库和出库
2013/06/25 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
基于jquery的仿百度搜索框效果代码
2011/04/11 Javascript
JS中的数组方法笔记整理
2016/07/26 Javascript
jQuery progressbar通过Ajax请求实现后台进度实时功能
2016/10/11 Javascript
微信小程序 在线支付功能的实现
2017/03/14 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
JavaScript实现单英文金山打字通
2020/07/24 Javascript
Vue+Bootstrap收藏(点赞)功能逻辑与具体实现
2020/10/22 Javascript
Python基于twisted实现简单的web服务器
2014/09/29 Python
python的else子句使用指南
2016/02/27 Python
浅析Python中的for 循环
2016/06/09 Python
Python列表和元组的定义与使用操作示例
2017/07/26 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
浅谈Matplotlib简介和pyplot的简单使用——文本标注和箭头
2018/01/09 Python
Python GUI布局尺寸适配方法
2018/10/11 Python
对python添加模块路径的三种方法总结
2018/10/16 Python
Python 3.8新特征之asyncio REPL
2019/05/28 Python
Python简单实现区域生长方式
2020/01/16 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
2020/05/03 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
Python3 ffmpeg视频转换工具使用方法解析
2020/08/10 Python
python实现图像随机裁剪的示例代码
2020/12/10 Python
什么是聚集索引和非聚集索引
2012/01/17 面试题
厨房工作人员岗位职责
2013/11/15 职场文书
校三好学生主要事迹
2014/01/11 职场文书
员工评语大全
2014/01/19 职场文书
付款委托书范本
2014/04/04 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
领导班子个人对照检查剖析材料
2014/09/29 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
起诉书格式范文
2015/05/20 职场文书
python入门之算法学习
2021/04/22 Python