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多线程编程(二):启动线程的两种方法
Apr 05 Python
Python中使用platform模块获取系统信息的用法教程
Jul 08 Python
python中将zip压缩包转为gz.tar的方法
Oct 18 Python
python消费kafka数据批量插入到es的方法
Dec 27 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
python 机器学习之支持向量机非线性回归SVR模型
Jun 26 Python
Python中低维数组填充高维数组的实现
Dec 02 Python
django 取消csrf限制的实例
Mar 13 Python
python输出数学符号实例
May 11 Python
Python中socket网络通信是干嘛的
May 27 Python
opencv 阈值分割的具体使用
Jul 08 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
Dec 17 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获取表单textarea数据中的换行问题
2010/09/10 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
2011/09/09 PHP
Smarty模板常见的简单应用分析
2016/11/15 PHP
PHP实现二维数组按某列进行排序的方法
2016/11/18 PHP
jQuery.trim() 函数及trim()用法详解
2015/10/26 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
详解Vue自定义过滤器的实现
2017/01/10 Javascript
详解vue.js2.0父组件点击触发子组件方法
2017/05/10 Javascript
javascript完美实现给定日期返回上月日期的方法
2017/06/15 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
JavaScript前端页面搜索功能案例【基于jQuery】
2019/07/10 jQuery
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
Javascript组合继承方法代码实例解析
2020/04/02 Javascript
React Native登录之指纹登录篇的示例代码
2020/11/03 Javascript
复习Python中的字符串知识点
2015/04/14 Python
python实现linux下抓包并存库功能
2018/07/18 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
浅谈python输出列表元素的所有排列形式
2020/02/26 Python
使用CSS3制作倾斜导航条和毛玻璃效果
2017/09/12 HTML / CSS
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
浏览器实现移动端高性能css3动画(开启gpu加速)
2013/12/23 HTML / CSS
曼联官方网上商店:Manchester United Direct
2017/07/28 全球购物
英国领先的鞋类零售商:Shoe Zone
2018/12/13 全球购物
员工评语大全
2014/01/19 职场文书
商务英语广告词大全
2014/03/18 职场文书
管理提升方案
2014/06/04 职场文书
法人委托书的范本格式
2014/09/11 职场文书
2015年见习期工作总结
2014/12/12 职场文书
广播体操比赛主持词
2015/06/29 职场文书
餐厅营销的秘密:为什么老顾客会流水?
2019/08/08 职场文书
导游词之烟台威海蓬莱
2019/11/14 职场文书
导游词之秦皇岛燕塞湖
2020/01/03 职场文书
如何在Mac上通过docker配置PHP开发环境
2021/05/29 PHP
SQL语句中EXISTS的详细用法大全
2022/06/25 MySQL