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 相关文章推荐
动态创建类实例代码
Oct 07 Python
Python中文件操作简明介绍
Apr 13 Python
pymongo为mongodb数据库添加索引的方法
May 11 Python
Python判断文件和文件夹是否存在的方法
May 21 Python
Python编程中的for循环语句学习教程
Oct 14 Python
python实现屏保计时器的示例代码
Aug 08 Python
对python指数、幂数拟合curve_fit详解
Dec 29 Python
Python字符串匹配之6种方法的使用详解
Apr 08 Python
Python 离线工作环境搭建的方法步骤
Jul 29 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
简单了解python调用其他脚本方法实例
Mar 26 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 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 session会话操作技巧小结
2016/09/27 PHP
yii2实现分页,带搜索的分页功能示例
2017/01/07 PHP
nginx 设置多个站跨域
2021/03/09 Servers
JS Timing
2007/04/21 Javascript
两个DIV等高的JS的实现代码
2007/12/23 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
Jquery知识点三 jquery表单对象操作
2011/01/17 Javascript
如何让easyui gridview 宽度自适应窗口改变及fitColumns应用
2013/01/25 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
Jquery实现兼容各大浏览器的Enter回车切换输入焦点的方法
2014/09/01 Javascript
js实现鼠标经过时图片滚动停止的方法
2015/02/16 Javascript
Javascript中数组方法汇总(推荐)
2015/04/01 Javascript
深入探究使JavaScript动画流畅的一些方法
2015/06/30 Javascript
使用HTML+CSS+JS制作简单的网页菜单界面
2015/07/27 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
配置nodejs环境的方法
2017/05/13 NodeJs
npm 常用命令详解(小结)
2019/01/17 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
Vue项目中使用WebUploader实现文件上传的方法
2019/07/21 Javascript
JavaScript 俄罗斯方块游戏实现方法与代码解释
2020/04/08 Javascript
JavaScript如何实现图片处理与合成
2020/05/29 Javascript
python统计文本文件内单词数量的方法
2015/05/30 Python
Python中str is not callable问题详解及解决办法
2017/02/10 Python
Django缓存Cache使用详解
2020/11/30 Python
html5 video标签屏蔽右键视频另存为的js代码
2013/11/12 HTML / CSS
Windows和Linux动态库应用异同
2016/07/28 面试题
自荐书格式
2013/12/01 职场文书
《听鱼说话》教学反思
2014/02/15 职场文书
学习标兵获奖感言
2014/02/20 职场文书
妇联领导班子剖析材料
2014/08/21 职场文书
学生检讨书
2015/01/27 职场文书
销售合作意向书范本
2015/05/08 职场文书
nginx简单配置多个server的方法
2021/03/31 Servers
mysql联合索引的使用规则
2021/06/23 MySQL