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 相关文章推荐
linux系统使用python获取内存使用信息脚本分享
Jan 15 Python
下载python中Crypto库报错:ModuleNotFoundError: No module named ‘Crypto’的解决
Apr 23 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
tensorflow 环境变量设置方式
Feb 06 Python
Python2.7:使用Pyhook模块监听鼠标键盘事件-获取坐标实例
Mar 14 Python
Python调用C语言程序方法解析
Jul 07 Python
Python 合并拼接字符串的方法
Jul 28 Python
PyTorch如何搭建一个简单的网络
Aug 24 Python
python基于tkinter制作m3u8视频下载工具
Apr 24 Python
Python多个MP4合成视频的实现方法
Jul 16 Python
Python中三种花式打印的示例详解
Mar 19 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实现MVC开发得最简单的方法――模型
2007/04/10 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
2010/11/01 PHP
sae使用smarty模板的方法
2013/12/17 PHP
PHP 5.3新增魔术方法__invoke概述
2014/07/23 PHP
PHP将Excel导入数据库及数据库数据导出至Excel的方法
2015/06/24 PHP
Zend Framework开发入门经典教程
2016/03/23 PHP
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
javascript 获取表单file全路径
2009/12/31 Javascript
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
Javascript高级技巧分享
2014/02/25 Javascript
Jquery 效果使用详解
2015/11/23 Javascript
实例详解jQuery结合GridView控件的使用方法
2016/01/04 Javascript
详解angularjs 关于ui-router分层使用
2017/06/12 Javascript
EasyUI的DataGrid绑定Json数据源的示例代码
2017/12/16 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
Vue组件间的通信pubsub-js实现步骤解析
2020/03/11 Javascript
React中Ref 的使用方法详解
2020/04/28 Javascript
React实现类似淘宝tab居中切换效果的示例代码
2020/06/02 Javascript
微信小程序之导航滑块视图容器功能的实现代码(简单两步)
2020/06/19 Javascript
ant design中upload组件上传大文件,显示进度条进度的实例
2020/10/29 Javascript
[01:02]DOTA2上海特锦赛SHOWOPEN
2016/03/25 DOTA
python3简单实现微信爬虫
2015/04/09 Python
多版本Python共存的配置方法
2017/05/22 Python
TensorFlow搭建神经网络最佳实践
2018/03/09 Python
numpy matrix和array的乘和加实例
2018/06/28 Python
python已协程方式处理任务实现过程
2019/12/27 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
HTML5 canvas基本绘图之绘制矩形
2016/06/27 HTML / CSS
使用HTML5拍照示例代码
2013/08/06 HTML / CSS
Oroton中国官网:澳洲知名奢侈配饰品牌
2017/03/26 全球购物
意大利在线购买隐形眼镜网站:VisionDirect.it
2019/03/18 全球购物
政风行风评议心得体会
2014/10/21 职场文书
工程部主管岗位职责
2015/02/12 职场文书
反邪教教育心得体会
2016/01/15 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书