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进阶教程之词典、字典、dict
Aug 29 Python
python爬取51job中hr的邮箱
May 14 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
对python读取zip压缩文件里面的csv数据实例详解
Feb 08 Python
opencv 获取rtsp流媒体视频的实现方法
Aug 23 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
Python实现CAN报文转换工具教程
May 05 Python
Django中Aggregation聚合的基本使用方法
Jul 09 Python
Python操作MySQL数据库的示例代码
Jul 13 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
英雄试炼之肉山谷—引领RPG新潮流
2020/04/20 DOTA
PHP模拟SQL Server的两个日期处理函数
2006/10/09 PHP
PHP生成静态页面详解
2006/11/19 PHP
php中使用preg_match_all匹配文章中的图片
2013/02/06 PHP
使用php+apc实现上传进度条且在IE7下不显示的问题解决方法
2013/04/25 PHP
php使用strtotime和date函数判断日期是否有效代码分享
2013/12/25 PHP
PHP 绘制网站登录首页图片验证码
2016/04/12 PHP
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP图形计数器程序显示网站用户浏览量
2016/07/20 PHP
PHP使用PDO操作sqlite数据库应用案例
2019/03/07 PHP
PHP7生产环境队列Beanstalkd用法详解
2020/05/19 PHP
javascript预加载图片、css、js的方法示例介绍
2013/10/14 Javascript
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
JQuery.get提交页面不跳转的解决方法
2015/01/13 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
jQuery插件HighCharts绘制2D饼图效果示例【附demo源码下载】
2017/03/21 jQuery
JavaScript实现为事件句柄绑定监听函数的方法分析
2017/11/14 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
three.js显示中文字体与tween应用详析
2021/01/04 Javascript
python基于BeautifulSoup实现抓取网页指定内容的方法
2015/07/09 Python
解析Python中while true的使用
2015/10/13 Python
python使用turtle库与random库绘制雪花
2018/06/22 Python
解决Mac下首次安装pycharm无project interpreter的问题
2018/10/29 Python
Python Numpy计算各类距离的方法
2019/07/05 Python
Python类反射机制使用实例解析
2019/12/30 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
Keras 利用sklearn的ROC-AUC建立评价函数详解
2020/06/15 Python
匈牙利超级网上商店和优惠:Alza.hu
2019/12/17 全球购物
波兰家居饰品和厨房配件网上商店:Maleomi
2020/12/15 全球购物
运动会拉拉队口号
2014/06/09 职场文书
2014大学生党员评议个人总结
2014/09/22 职场文书
向国旗敬礼活动总结范文2014
2014/09/27 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
颐和园导游词
2015/01/30 职场文书
小班下学期个人总结
2015/02/12 职场文书
世界上超棒的8种逻辑思维
2019/08/06 职场文书