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程序员开发中常犯的10个错误
Jul 07 Python
Python设计模式之MVC模式简单示例
Jan 10 Python
在vscode中配置python环境过程解析
Sep 28 Python
浅谈python中统计计数的几种方法和Counter详解
Nov 07 Python
Python 实现取多维数组第n维的前几位
Nov 26 Python
flask框架渲染Jinja模板与传入模板变量操作详解
Jan 25 Python
Python如何通过百度翻译API实现翻译功能
Apr 02 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
python爬虫构建代理ip池抓取数据库的示例代码
Sep 22 Python
python中PyQuery库用法分享
Jan 15 Python
django 认证类配置实现
Nov 11 Python
Python采集股票数据并制作可视化柱状图
Apr 04 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实现文件下载实例分享
2014/06/02 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
JavaScript Event学习第三章 早期的事件处理程序
2010/02/07 Javascript
Dom与浏览器兼容性说明
2010/10/25 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
了解jQuery技巧来提高你的代码(个人觉得那个jquery的手册很不错)
2012/02/10 Javascript
js校验表单后提交表单的三种方法总结
2014/02/28 Javascript
Jquery validation remote 验证的缓存问题解决方法
2014/03/25 Javascript
javascript数组去重方法终极总结
2014/06/05 Javascript
js生成的验证码的实现与技术分析
2014/09/17 Javascript
深入分析原生JavaScript事件
2014/12/29 Javascript
浅析AngularJs HTTP响应拦截器
2015/12/28 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
AngularJS数据源的多种获取方式汇总
2016/02/02 Javascript
深入浅析javascript中的作用域(推荐)
2016/07/19 Javascript
vue模板语法-插值详解
2017/03/06 Javascript
[54:06]OG vs TNC 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
对Python 文件夹遍历和文件查找的实例讲解
2018/04/26 Python
python多任务及返回值的处理方法
2019/01/22 Python
logging level级别介绍
2020/02/21 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
python产生模拟数据faker库的使用详解
2020/11/04 Python
如何安装ruby on rails
2014/02/09 面试题
语文教育专业推荐信范文
2013/11/25 职场文书
《冬阳童年骆驼队》教学反思
2014/04/15 职场文书
网页美工求职信范文
2014/04/17 职场文书
超市开业庆典策划方案
2014/05/14 职场文书
迎国庆演讲稿
2014/09/05 职场文书
工商局个人工作总结
2015/03/03 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
关于艺术节的开幕致辞
2016/03/04 职场文书
子女赡养老人协议书
2016/03/23 职场文书
如何让vue长列表快速加载
2021/03/29 Vue.js
oracle删除超过N天数据脚本的方法
2022/02/28 Oracle
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android
Android RecyclerView实现九宫格效果
2022/06/28 Java/Android