Django框架视图函数设计示例


Posted in Python onJuly 29, 2019

本文实例讲述了Django框架视图函数。分享给大家供大家参考,具体如下:

视图函数即为处理HTTP请求的python函数。一般情况下,视图函数的功能是通过模型层对象处理数据,然后通过下面三种方式返回HTTP Response:

  1. 直接构造HTTP BODY
  2. 用数据渲染HTML模板文件
  3. 如果有逻辑错误就返回HTTP错误或者其他状态!

1.直接构造HTML页面

对于简单的页面,可以直接在视图函数汇总构造返回给客户端的字符串,通过HttpResponse函数封装后返回:

#views.py
from django.http import HttpResponse
import datetime
def test(request):
  now = datetime.datetime.now().strftime("%y-%m-%d %h:%m:%s")
  return HttpResponse(now)

2.渲染HTML文件

模板文件渲染通过render函数实现:

from django.shortcuts import render
from app.models import Moment
def test(request, moment_id):
  m = Moment.objects.get(id=moment_id)
  return render(request, '/templates/moment.html', {'headlin':m.headline, 'user':m.user_name})
render函数的第一个参数是HTTP request, 第二个为html路径, 第三个模板参数

3.返回http error

HTTP错误通过HTTP头部status表达,通过HttpResponse构造参数status,返回http错误或者状态:

from django.http import HttpResponse
def my_error(request):
  return HttpResponse(status=404)

解析:

可返回404状态码

对于常用status状态定义多个HttpResponse的子类,可以通过这些子类直接定义response

from django.http import HttpResponseNotFount
def my_err(request):
  return HttpResponseNotFount()

跟上面的代码效果相同!

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Python的Flask框架中集成CKeditor富文本编辑器的教程
Jun 13 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
python 中if else 语句的作用及示例代码
Mar 05 Python
详谈python3 numpy-loadtxt的编码问题
Apr 29 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
详解Python中的正斜杠与反斜杠
Aug 09 Python
python-Web-flask-视图内容和模板知识点西宁街
Aug 23 Python
Python matplotlib可视化实例解析
Jun 01 Python
python怎么自定义捕获错误
Jun 29 Python
Python如何实现大型数组运算(使用NumPy)
Jul 24 Python
python 读取yaml文件的两种方法(在unittest中使用)
Dec 01 Python
用Python自动清理电脑内重复文件,只要10行代码(自动脚本)
Jan 09 Python
python内存监控工具memory_profiler和guppy的用法详解
Jul 29 #Python
Python 硬币兑换问题
Jul 29 #Python
django中使用Celery 布式任务队列过程详解
Jul 29 #Python
详解python中自定义超时异常的几种方法
Jul 29 #Python
Python 离线工作环境搭建的方法步骤
Jul 29 #Python
如何通过python的fabric包完成代码上传部署
Jul 29 #Python
Python八皇后问题解答过程详解
Jul 29 #Python
You might like
php调用mysql存储过程
2007/02/14 PHP
php下目前为目最全的CURL中文说明
2010/08/01 PHP
PHP 字符串正则替换函数preg_replace使用说明
2011/07/15 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
实例讲解php将字符串输出到HTML
2019/01/27 PHP
Laravel中9个不经常用的小技巧汇总
2019/04/16 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
2013/10/29 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
Node.js的项目构建工具Grunt的安装与配置教程
2016/05/12 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
vue踩坑记-在项目中安装依赖模块npm install报错
2019/04/02 Javascript
在vue中获取微信支付code及code被占用问题的解决方法
2019/04/16 Javascript
基于VSCode调试网页JavaScript代码过程详解
2020/07/20 Javascript
[01:04:08]完美世界DOTA2联赛PWL S3 INK ICE vs GXR 第一场 12.16
2020/12/18 DOTA
Python中使用异常处理来判断运行的操作系统平台方法
2015/01/22 Python
python实战之实现excel读取、统计、写入的示例讲解
2018/05/02 Python
对python3 Serial 串口助手的接收读取数据方法详解
2019/06/12 Python
Django之路由层的实现
2019/09/09 Python
django xadmin action兼容自定义model权限教程
2020/03/30 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
Python调用OpenCV实现图像平滑代码实例
2020/06/19 Python
mac系统下安装pycharm、永久激活、中文汉化详细教程
2020/11/24 Python
Python实现随机爬山算法
2021/01/29 Python
Html5插件教程之添加浏览器放大镜效果的商品橱窗
2016/01/07 HTML / CSS
英国户外装备商店:Ultimate Outdoors
2019/05/07 全球购物
Juice Beauty官网:有机美容产品,护肤与化妆品
2020/06/13 全球购物
高中军训广播稿
2014/01/14 职场文书
法人代表授权委托书
2014/04/08 职场文书
机关门卫的岗位职责
2014/04/29 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
2014年教育工作总结
2014/11/26 职场文书
村干部任职承诺书
2015/01/21 职场文书