详解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 随机数生成的代码的详细分析
May 15 Python
简单介绍Python中的filter和lambda函数的使用
Apr 07 Python
Python脚本处理空格的方法
Aug 08 Python
Python制作钉钉加密/解密工具
Dec 07 Python
Python实现二维数组按照某行或列排序的方法【numpy lexsort】
Sep 22 Python
pytorch构建网络模型的4种方法
Apr 13 Python
python 实现登录网页的操作方法
May 11 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
Feb 26 Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 Python
浅析Python3 pip换源问题
Jan 06 Python
matplotlib.pyplot.matshow 矩阵可视化实例
Jun 16 Python
Python持续监听文件变化代码实例
Jul 22 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
十天学会php之第一天
2006/10/09 PHP
PHP_MySQL教程-第一天
2007/03/18 PHP
php技术实现加载字体并保存成图片
2015/07/27 PHP
php生成图片验证码-附五种验证码
2015/08/19 PHP
简明json介绍
2008/09/28 Javascript
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
JavaScript高级程序设计 阅读笔记(十四) js继承机制的实现
2012/08/14 Javascript
浏览器窗口大小变化时使用resize事件对框架不起作用的解决方法
2014/05/11 Javascript
IE浏览器不支持getElementsByClassName的解决方法
2014/08/27 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
jQuery下拉菜单的实现代码
2016/11/03 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
AngularJS中的promise用法分析
2017/05/19 Javascript
Bootstrap Multiselect 常用组件实现代码
2017/07/09 Javascript
用javascript获取任意颜色的更亮或更暗颜色值示例代码
2017/07/21 Javascript
Koa项目搭建过程详细记录
2018/04/12 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
原生javascript制作的拼图游戏实现方法详解
2020/02/23 Javascript
[45:10]NB vs Liquid Supermajor小组赛 A组胜者组决赛 BO3 第二场 6.2
2018/06/04 DOTA
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
python开发之anaconda以及win7下安装gensim的方法
2019/07/05 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
使用python采集Excel表中某一格数据
2020/05/14 Python
如何使用Python处理HDF格式数据及可视化问题
2020/06/24 Python
Javascript 高级手势使用介绍
2013/04/21 HTML / CSS
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
Jacques Lemans德国:奥地利钟表品牌
2019/12/26 全球购物
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
计算机科学与技术应届生求职信
2013/11/07 职场文书
检讨书大全
2015/01/27 职场文书
好员工观后感
2015/06/17 职场文书
初中班主任教育随笔
2015/08/15 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书