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实现SMTP邮件发送功能
Jun 16 Python
python中的二维列表实例详解
Jun 19 Python
解决python报错MemoryError的问题
Jun 26 Python
Python rstrip()方法实例详解
Nov 11 Python
11个Python3字典内置方法大全与示例汇总
May 13 Python
python实现五子棋人机对战游戏
Mar 25 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
python实现五子棋程序
Apr 24 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
Python paramiko使用方法代码汇总
Nov 20 Python
Python中的tkinter库简单案例详解
Jan 22 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
PDO::exec讲解
2019/01/28 PHP
单独使用CKFinder选择图片的方法
2010/08/21 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
Javascript实现视频轮播在pc端与移动端均可
2013/09/29 Javascript
javascript:void(0)的作用示例介绍
2013/10/28 Javascript
jquery中map函数与each函数的区别实例介绍
2014/06/23 Javascript
javascript实现rgb颜色转换成16进制格式
2015/07/10 Javascript
学习Bootstrap组件之下拉菜单
2015/07/28 Javascript
微信小程序 获取设备信息 API实例详解
2016/10/02 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Javascript防止图片拉伸的自适应处理方法
2017/12/26 Javascript
使用puppeteer破解极验的滑动验证码
2018/02/24 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
javascript获取select值的方法完整实例
2019/06/20 Javascript
详解element-ui中表单验证的三种方式
2019/09/18 Javascript
原生js实现九宫格拖拽换位
2021/01/26 Javascript
Python计算已经过去多少个周末的方法
2015/07/25 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
python 删除指定时间间隔之前的文件实例
2018/04/24 Python
Python BS4库的安装与使用详解
2018/08/08 Python
python实现简单的文字识别
2018/11/27 Python
Django之模型层多表操作的实现
2019/01/08 Python
Django 外键的使用方法详解
2019/07/19 Python
超实用的 30 段 Python 案例
2019/10/10 Python
python实现图片插入文字
2019/11/26 Python
JupyterNotebook 输出窗口的显示效果调整方法
2020/04/13 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
基于python实现图片转字符画代码实例
2020/09/04 Python
HelloFresh澳大利亚:订购你的美味食品盒、健康餐食
2018/03/28 全球购物
类如何去实现接口
2013/12/19 面试题
会展策划与管理专业大学生职业生涯规划
2014/02/07 职场文书
鸿星尔克广告词
2014/03/21 职场文书
小学生评语集锦
2014/04/18 职场文书
2015年元旦文艺晚会总结(学院)
2014/11/28 职场文书
WINDOWS 64位 下安装配置mysql8.0.25最详细的教程
2022/03/22 MySQL