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中的闭包实例详解
Aug 29 Python
Python守护进程用法实例分析
Jun 04 Python
Django框架教程之正则表达式URL误区详解
Jan 28 Python
为什么入门大数据选择Python而不是Java?
Mar 07 Python
python 实现对文件夹内的文件排序编号
Apr 12 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
Python django框架输入汉字,数字,字符生成二维码实现详解
Sep 24 Python
python实现简单坦克大战
Mar 27 Python
Pyinstaller 打包发布经验总结
Jun 02 Python
python中的split、rsplit、splitlines用法说明
Oct 23 Python
聊聊pytorch测试的时候为何要加上model.eval()
May 23 Python
Python Matplotlib绘制条形图的全过程
Oct 24 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 GD绘制24小时柱状图
2008/06/28 PHP
php去除html标记的原生函数详解
2015/01/27 PHP
php实现字符串首字母大写和单词首字母大写的方法
2015/03/14 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
MacOS下PHP7.1升级到PHP7.4.15的方法
2021/02/22 PHP
js 绑定键盘鼠标事件示例代码
2014/02/12 Javascript
javascript制作坦克大战全纪录(2)
2014/11/27 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
纯HTML5制作围住神经猫游戏-附源码下载
2015/08/23 Javascript
JS修改地址栏参数实例代码
2016/06/14 Javascript
AngularJS自定义插件实现网站用户引导功能示例
2016/11/07 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
JS+CSS实现下拉刷新/上拉加载插件
2017/03/31 Javascript
node.js自动上传ftp的脚本分享
2018/06/16 Javascript
Javascript执行上下文顺序的深入讲解
2020/11/04 Javascript
如何在 Vue 表单中处理图片
2021/01/26 Vue.js
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python实现感知器
2017/12/19 Python
详解python字节码
2018/02/07 Python
浅谈python中对于json写入txt文件的编码问题
2018/06/07 Python
python并发和异步编程实例
2018/11/15 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
python中如何实现将数据分成训练集与测试集的方法
2019/09/13 Python
python 实现绘制整齐的表格
2019/11/18 Python
学Python 3的理由和必要性
2019/11/19 Python
python定义类self用法实例解析
2020/01/22 Python
python手写均值滤波
2020/02/19 Python
Sephora丝芙兰澳洲官方网站:国际知名化妆品购物
2016/10/27 全球购物
中学生期末评语
2014/02/03 职场文书
提拔干部考察材料
2014/05/26 职场文书
5s标语大全
2014/06/23 职场文书
营销计划书范文
2015/01/17 职场文书
出纳岗位职责范本
2015/03/31 职场文书
计算机教师工作总结
2015/08/13 职场文书
Nginx禁止ip访问或非法域名访问
2022/04/07 Servers