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的chardet库获得文件编码并修改编码
Jan 22 Python
Python使用bs4获取58同城城市分类的方法
Jul 08 Python
Python中列表、字典、元组数据结构的简单学习笔记
Mar 20 Python
浅析Python中MySQLdb的事务处理功能
Sep 21 Python
Python三种遍历文件目录的方法实例代码
Jan 19 Python
Django中间件实现拦截器的方法
Jun 01 Python
python2.x实现人民币转大写人民币
Jun 20 Python
Python openpyxl读取单元格字体颜色过程解析
Sep 03 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
Python 制作自动化翻译工具
Apr 25 Python
python 多态 协议 鸭子类型详解
Nov 27 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结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
基于thinkPHP框架实现留言板的方法
2016/10/17 PHP
PHP+iframe图片上传实现即时刷新效果
2016/11/18 PHP
firefox中JS读取XML文件
2006/12/21 Javascript
IE与Firefox在JavaScript上的7个不同句法分享
2011/10/30 Javascript
Jquery uploadify图片上传插件无法上传的解决方法
2013/12/16 Javascript
JavaScript控制网页平滑滚动到指定元素位置的方法
2015/04/17 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
jquery实现刷新随机变化样式特效(tag标签样式)
2017/02/03 Javascript
Vue组件创建和传值的方法
2018/08/17 Javascript
详解在vue-cli中使用graphql即vue-apollo的用法
2018/09/08 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
2018/11/25 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
Python随机生成数模块random使用实例
2015/04/13 Python
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
python中的格式化输出用法总结
2016/07/28 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python二叉搜索树与双向链表转换算法示例
2019/03/02 Python
简单了解django处理跨域请求最佳解决方案
2020/03/25 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
沙特阿拉伯电子产品和家用电器购物网站:Black Box
2019/07/24 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
如何将一个描述日期或日期/时间的字符串转换为一个Date对象
2015/10/13 面试题
文秘自荐信
2013/10/20 职场文书
教师对学生的寄语
2014/04/03 职场文书
校园文明标语
2014/06/13 职场文书
暑假学习心得体会
2014/09/02 职场文书
2014幼儿园教师师德师风演讲稿
2014/09/10 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
总结Pyinstaller打包的高级用法
2021/06/28 Python
Vue+TypeScript中处理computed方式
2022/04/02 Vue.js