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标准库之多进程(multiprocessing包)介绍
Nov 25 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
详解django中url路由配置及渲染方式
Feb 25 Python
通过shell+python实现企业微信预警
Mar 07 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
使用 python pyautogui实现鼠标键盘控制功能
Aug 04 Python
使用python写的opencv实时监测和解析二维码和条形码
Aug 14 Python
python web框架 django wsgi原理解析
Aug 20 Python
Python selenium模拟手动操作实现无人值守刷积分功能
May 13 Python
基于Tensorflow一维卷积用法详解
May 22 Python
django template实现定义临时变量,自定义赋值、自增实例
Jul 12 Python
Python编写memcached启动脚本代码实例
Aug 14 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
我的论坛源代码(二)
2006/10/09 PHP
关于二级目录拖拽排序的实现(源码示例下载)
2013/04/26 PHP
解析PHP的session过期设置
2013/06/29 PHP
php数组删除元素示例
2014/03/21 PHP
php ci 获取表单中多个同名input元素值的代码
2016/03/25 PHP
基于JQuery模仿苹果桌面的Dock效果(初级版)
2012/10/15 Javascript
js实现可得到不同颜色值的颜色选择器实例
2015/02/28 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
es7学习教程之fetch解决异步嵌套问题的方法示例
2017/07/21 Javascript
Vue利用路由钩子token过期后跳转到登录页的实例
2017/10/26 Javascript
分析JS单线程异步io回调的特性
2017/12/01 Javascript
javascript填充默认头像方法
2018/02/22 Javascript
原生JS+HTML5实现的可调节写字板功能示例
2018/08/30 Javascript
在vue中安装使用vux的教程详解
2018/09/16 Javascript
layui 弹出层回调获取弹出层数据的例子
2019/09/02 Javascript
关于layui的动态图标不显示的解决方法
2019/09/04 Javascript
[08:38]DOTA2-DPC中国联赛 正赛 VG vs Elephant 选手采访
2021/03/11 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python实现线程状态监测简单示例
2018/03/28 Python
Python 实现两个服务器之间文件的上传方法
2019/02/13 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
基于Python中random.sample()的替代方案
2020/05/23 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
亚马逊印度站:Amazon.in
2017/10/15 全球购物
Bugatchi官方网站:男士服装在线
2019/04/10 全球购物
秋游活动策划方案
2014/02/16 职场文书
教育技术职业规划范文
2014/03/04 职场文书
十佳家长事迹材料
2014/08/26 职场文书
关于军训的感想
2015/08/07 职场文书
MySQL 8.0 驱动与阿里druid版本兼容问题解决
2021/07/01 MySQL
PHP 时间处理类Carbon
2022/05/20 PHP