详解Django中 render() 函数的使用方法


Posted in Python onApril 22, 2021

render() 函数

在讲 render() 函数之前,我们在 Django 项目 index 文件夹的 urls.py 和 views.py 中编写如下功能代码:(不难,望读者细心阅之)

# index的 urls.py
from django.urls import path
form . import views

urlpatterns = [
    # 定义首页的路由
    path(' ', views.index, name='index'),
]
# index的views.py
from django.http import HttpResponse
def index(request):
    html = '<h1> Hello World </h1>'
    return HttpResponse(html, status=200)

视图函数 index 使用响应类 HttpResponse 实现响应过程。从 HttpResponse 的参数可知,第一个参数是响应内容,一般是网页内容或 JSON 数据,网页内容是以HTML语言为主的,JSON数据用于生成API接口数据。第二个参数用于设置HTTP状态码,它支持HTTP所有的状态码。

从源码角度分析,打开响应类 HttpResponse 的源码文件,发现 Django内置的响应类(本人在上篇文章中已讲过)都是在 HttpResponse 的基础上实现的,只不过它们的HTTP状态码有所不同,如图下所示。

详解Django中 render() 函数的使用方法

从 HttpResponse 的使用过程可知,如果要生成网页内容,就需要将 HTML 语言以 字符串的形式表示,如果网页内容过大,就会增加视图函数的代码量,同时也没有体现模板的作用,因此Django在此基础上进行了封装处理,定义了函数 render 和 redirect。
render()语法如下:

render(request, template_name, context=None, content_type=None, status=None, using=None)

render 的参数 request 和 template name 是必需参数,其余的参数是可选参数。各个参数说明如下。

  • request:浏览器向服务器发送的请求对象,包含用户信息、请求内容和请求方式等。
  • template_name:设重模板文件名,用于生成网页内容。
  • context:对模板上下文(模板变量)赋值,以字典格式表示,默认情况下是一个空字典。
  • content_type:响应内容的数据格式,一般情况下使用默认值即可。
  • status:HTTP状态码,默认为200。
  • using:设置模板引擎,用于解析模板文件,生成网页内容。

为了更好地说明 render 的使用方法,我们通过简单的例子来加以说明。在Django项目的index文件中的 views.py 和 templates 的 index.html 中编写以下代码:

# index的 views.py
from django.shortcuts import render
def index(request):
    value = {'title': 'Hello Django'}
    return render(request, 'index.html', context=value)
# templates 的 index.html
<!DOCTYPE html>
<html>
  <body>
    <h3> {{ title }} </h3>
  </body>
</html>

视图函数 index 定义的变量 value 作为 render 的参数 context,而模板 index.html 里通过使用模板上下文(模板变量){{ title }} 来获取变量 value 的数据,上下文的命名必须与变量 value 的数据命名(字典的key)相同,这样 Django 内置的模板引擎才能将参数context(变量value)的数据与模板上下文进行配对,从而将参数 context 的数据转换成网页内容。运行Django项目,在浏览器上访问127.0.0.1:8000即可看到网页信息,如图下所示。

详解Django中 render() 函数的使用方法

希望以上内容能够帮助到各位!

到此这篇关于Django中 render() 函数的使用方法的文章就介绍到这了,更多相关Django中 render() 函数内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
利用Python绘制数据的瀑布图的教程
Apr 07 Python
Python中str is not callable问题详解及解决办法
Feb 10 Python
Python正则简单实例分析
Mar 21 Python
Django内容增加富文本功能的实例
Oct 17 Python
Python命令行解析模块详解
Feb 01 Python
对Python发送带header的http请求方法详解
Jan 02 Python
使用Python实现跳帧截取视频帧
May 31 Python
pandas中的series数据类型详解
Jul 06 Python
python 实现批量替换文本中的某部分内容
Dec 13 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
Python基础之pandas数据合并
Apr 27 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
PHP 获取MySQL数据库里所有表的实现代码
2011/07/13 PHP
浅析php header 跳转
2013/06/17 PHP
php微信公众平台开发之获取用户基本信息
2015/08/17 PHP
laravel 数据验证规则详解
2019/10/23 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
JavaScript 利用Cookie记录用户登录信息
2009/12/08 Javascript
javascript 传统事件模型构造的事件监听器实现代码
2010/05/31 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
javascript中数组的concat()方法使用介绍
2013/12/18 Javascript
javascript中eval函数用法分析
2015/04/25 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
2015/09/07 Javascript
详解nodejs微信公众号开发——4.自动回复各种消息
2017/04/11 NodeJs
javascript input输入框模糊提示功能的实现
2017/09/25 Javascript
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
详解使用element-ui table组件的筛选功能的一个小坑
2018/11/02 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
[02:29]完美世界高校联赛上海赛区回顾
2015/12/15 DOTA
python基础教程之基本内置数据类型介绍
2014/02/20 Python
python字符串,数值计算
2016/10/05 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python算法表示概念扫盲教程
2017/04/13 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
2019/06/04 Python
浅谈Tensorflow 动态双向RNN的输出问题
2020/01/20 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
python能做哪些生活有趣的事情
2020/09/09 Python
手把手教你用纯css3实现轮播图效果实例
2017/05/04 HTML / CSS
MAC Cosmetics官方网站:魅可专业艺术彩妆
2019/04/10 全球购物
费用会计岗位职责
2014/01/01 职场文书
小区消防演习方案
2014/02/21 职场文书
大学英语演讲稿范文
2014/04/24 职场文书
高中升旗仪式演讲稿
2014/09/09 职场文书
上课迟到检讨书300字
2014/10/15 职场文书
专题组织生活会发言材料
2014/10/17 职场文书
先进个人总结范文
2015/02/15 职场文书
甲午大海战观后感
2015/06/02 职场文书