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制作爬虫采集小说
Oct 25 Python
Python上传package到Pypi(代码简单)
Feb 06 Python
Python抓取聚划算商品分析页面获取商品信息并以XML格式保存到本地
Feb 23 Python
PyQt5每天必学之拖放事件
Aug 27 Python
python 中字典嵌套列表的方法
Jul 03 Python
Python XlsxWriter模块Chart类用法实例分析
Mar 11 Python
python的pstuil模块使用方法总结
Jul 26 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
Python 3.8正式发布重要新功能一览
Oct 17 Python
tensorflow 保存模型和取出中间权重例子
Jan 24 Python
python爬虫基础知识点整理
Jun 02 Python
python爬取youtube视频的示例代码
Mar 03 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 柱状图实现代码
2009/12/04 PHP
php 8小时时间差的解决方法小结
2009/12/22 PHP
利用php递归实现无限分类 格式化数组的详解
2013/06/08 PHP
简单的php缓存类分享     php缓存机制
2014/01/22 PHP
destoon整合ucenter后注册页面不跳转的解决方法
2014/06/21 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP简单留言本功能实现代码
2017/06/09 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
Thinkphp 5.0实现微信企业付款到零钱
2018/09/30 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
Javascript 面向对象编程(一) 封装
2011/08/28 Javascript
解决遍历时Array.indexOf产生的性能问题
2012/07/03 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
extjs 分页使用jsp传递数据示例
2014/07/29 Javascript
JavaScript学习笔记之JS事件对象
2015/01/22 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
浅谈JavaScript变量的自动转换和语句
2016/06/12 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
JS正则截取两个字符串之间及字符串前后内容的方法
2017/01/06 Javascript
Javascript Event(事件)的传播与冒泡
2017/01/23 Javascript
JS实现登录页密码的显示和隐藏功能
2017/12/06 Javascript
JavaScript实现数字前补“0”的五种方法示例
2019/01/03 Javascript
关于ckeditor在bootstrap中modal中弹框无法输入的解决方法
2019/09/11 Javascript
npm qs模块使用详解
2020/02/07 Javascript
详谈vue中router-link和传统a链接的区别
2020/07/22 Javascript
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
Elemental Herbology官网:英国美容品牌
2019/04/27 全球购物
linux面试题参考答案(11)
2016/11/26 面试题
甲方资料员岗位职责
2013/12/13 职场文书
企业年会主持词
2014/03/27 职场文书
酒店端午节活动方案
2014/08/26 职场文书
高中生逃课检讨书
2014/10/10 职场文书
孕妇离婚协议书范本
2014/11/20 职场文书
入党团支部推荐意见
2015/06/02 职场文书
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL