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的urllib和urllib2模块制作爬虫的实例教程
Jan 20 Python
Python使用三种方法实现PCA算法
Dec 12 Python
python 寻找优化使成本函数最小的最优解的方法
Dec 28 Python
python实现朴素贝叶斯分类器
Mar 28 Python
Django使用Mysql数据库已经存在的数据表方法
May 27 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python查找文件中包含中文的行方法
Dec 19 Python
Python创建字典的八种方式
Feb 27 Python
Flask框架工厂函数用法实例分析
May 25 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
使用python实现多维数据降维操作
Feb 24 Python
用python批量移动文件
Jan 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
Youku 视频绝对地址获取的方法详解
2013/06/26 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
php each 返回数组中当前的键值对并将数组指针向前移动一步实例
2016/11/22 PHP
js中if语句的几种优化代码写法
2011/03/12 Javascript
javascript时间自动刷新实现原理与步骤
2013/01/06 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jQuery+PHP星级评分实现方法
2015/10/02 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
探究Javascript模板引擎mustache.js使用方法
2016/01/26 Javascript
jQuery插件支持同一页面被多次调用
2016/02/14 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
JavaScript实现两个select下拉框选项左移右移
2017/03/09 Javascript
修改 bootstrap table 默认detailRow样式的实例代码
2017/07/21 Javascript
Vue组件和Route的生命周期实例详解
2018/02/10 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
Webpack 4.x搭建react开发环境的方法步骤
2018/08/15 Javascript
JavaScript手写数组的常用函数总结
2020/11/22 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
如何实现删除numpy.array中的行或列
2018/05/08 Python
Python中extend和append的区别讲解
2019/01/24 Python
Django项目主urls导入应用中views的红线问题解决
2019/08/10 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
使用python实现kNN分类算法
2019/10/16 Python
python 动态调用函数实例解析
2019/10/21 Python
Python实现数值积分方式
2019/11/20 Python
Python异常处理机制结构实例解析
2020/07/23 Python
瑞典时尚服装购物网站:Miinto.se
2017/10/30 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
会计学自我鉴定
2014/02/06 职场文书
cf战队收人广告词
2014/03/14 职场文书
求职自我评价怎么写
2015/03/09 职场文书
PostgreSQL数据库去除重复数据和运算符的基本查询操作
2022/04/12 PostgreSQL