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 17 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
Python3 Random模块代码详解
Dec 04 Python
python批量替换多文件字符串问题详解
Apr 22 Python
Python 类的特殊成员解析
Jun 20 Python
Opencv-Python图像透视变换cv2.warpPerspective的示例
Apr 11 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python中with用法讲解
Feb 07 Python
Python logging模块异步线程写日志实现过程解析
Jun 30 Python
详解Django中异步任务之django-celery
Nov 05 Python
python_tkinter事件类型详情
Mar 20 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实现的在线人员函数库
2008/04/09 PHP
PHP 开源AJAX框架14种
2009/08/24 PHP
php批量添加数据与批量更新数据的实现方法
2014/12/16 PHP
PHP重定向与伪静态区别
2017/02/19 PHP
thinkphp5.0自定义验证规则使用方法
2017/11/16 PHP
用javascript实现的仿Flash广告图片轮换效果
2007/04/24 Javascript
你必须知道的JavaScript 中字符串连接的性能的一些问题
2013/05/07 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
2014/04/25 Javascript
js的for in循环和java里foreach循环的区别分析
2015/01/28 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
JavaScript对象参数的引用传递
2016/01/14 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
JS自定义混合Mixin函数示例
2016/11/26 Javascript
jQuery点击导航栏选中更换样式的实现代码
2017/01/23 Javascript
详解vue2 $watch要注意的问题
2017/09/08 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
2017/10/18 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
React Native之prop-types进行属性确认详解
2017/12/19 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
解决layer弹出层中表单不起作用的问题
2019/09/09 Javascript
Node对CommonJS的模块规范
2019/11/06 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
常见python正则用法的简单实例
2016/06/21 Python
Python脚本实现12306火车票查询系统
2016/09/30 Python
Python tkinter模块中类继承的三种方式分析
2017/08/08 Python
python使用Paramiko模块实现远程文件拷贝
2019/04/30 Python
Python识别快递条形码及Tesseract-OCR使用详解
2019/07/15 Python
性能服装:HYLETE
2018/08/14 全球购物
AP澳洲中文网:澳洲正品直邮,包税收件无忧
2019/07/12 全球购物
自考生自我评价分享
2014/01/18 职场文书
爱国主义演讲稿
2014/05/07 职场文书
中学教师师德师风演讲稿
2014/08/22 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书