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编程中super关键字的用法
Jun 24 Python
使用python实现BLAST
Feb 12 Python
Pycharm+Scrapy安装并且初始化项目的方法
Jan 15 Python
Python中logging实例讲解
Jan 17 Python
详解用python写一个抽奖程序
May 10 Python
pyqt5 实现多窗口跳转的方法
Jun 19 Python
解决Djang2.0.1中的reverse导入失败的问题
Aug 16 Python
pytest中文文档之编写断言
Sep 12 Python
在OpenCV里使用Camshift算法的实现
Nov 22 Python
python GUI库图形界面开发之PyQt5菜单栏控件QMenuBar的详细使用方法与实例
Feb 28 Python
python 错误处理 assert详解
Apr 20 Python
python 如何在 Matplotlib 中绘制垂直线
Apr 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
获取URL文件名后缀
2013/10/24 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP Swoole异步Redis客户端实现方法示例
2019/10/24 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
写js时遇到的一些小问题
2010/12/06 Javascript
JS清除IE浏览器缓存的方法
2013/07/26 Javascript
jquery遍历之parent()和parents()的区别及parentsUntil()方法详解
2013/12/02 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
Bootstrap风格的WPF样式
2016/12/07 Javascript
JS中Safari浏览器中的Date
2017/07/17 Javascript
javascript 中select框触发事件过程的分析
2017/08/01 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
nuxt框架中对vuex进行模块化设置的实现方法
2019/09/06 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
JS实现简易计算器
2020/02/14 Javascript
基于javascript实现放大镜特效
2020/12/03 Javascript
使用grappelli为django admin后台添加模板
2014/11/18 Python
Python通过OpenCV的findContours获取轮廓并切割实例
2018/01/05 Python
Python+tkinter使用40行代码实现计算器功能
2018/01/30 Python
python paramiko利用sftp上传目录到远程的实例
2019/01/03 Python
Django模板Templates使用方法详解
2019/07/19 Python
Python pip使用超时问题解决方案
2020/08/03 Python
python代数式括号有效性检验示例代码
2020/10/04 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
安全横幅标语
2014/06/09 职场文书
课程设计的心得体会
2014/09/03 职场文书
2014年初中班主任工作总结
2014/11/08 职场文书
考研英语复习计划
2015/01/19 职场文书
自主招生英文自荐信
2015/03/25 职场文书
葬礼主持词
2015/07/02 职场文书
学术研讨会主持词
2015/07/04 职场文书
女方家长婚礼致辞
2015/07/27 职场文书
2016年大学光棍节活动总结
2016/04/05 职场文书
Python实现Hash算法
2022/03/18 Python
python高温预警数据获取实例
2022/07/23 Python