详解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编程模板汇总
Feb 12 Python
Django数据库表反向生成实例解析
Feb 06 Python
pandas object格式转float64格式的方法
Apr 10 Python
python 异或加密字符串的实例
Oct 14 Python
python多进程控制学习小结
Oct 31 Python
pytorch如何冻结某层参数的实现
Jan 10 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
Jan 10 Python
使用python3 实现插入数据到mysql
Mar 02 Python
Python实现验证码识别
Jun 15 Python
PyQt5-QDateEdit的简单使用操作
Jul 12 Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 Python
python 实现图片特效处理
Apr 03 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
PHP中的随机性 你觉得自己幸运吗?
2016/01/22 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
PHP PDO操作MySQL基础教程
2017/06/05 PHP
thinkPHP3.2.3实现阿里大于短信验证的方法
2018/06/06 PHP
基于jQuery的消息提示插件 DivAlert之旅(二)
2010/04/01 Javascript
在javascript将NodeList作为Array数组处理的方法
2010/07/09 Javascript
js判断ie版本号的简单实现代码
2014/03/05 Javascript
Javascript获取统一管理的提示语(message)
2016/02/03 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
angularjs 源码解析之injector
2016/08/22 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
2016/11/03 Javascript
Vuejs 用$emit与$on来进行兄弟组件之间的数据传输通信
2017/02/23 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
详解jquery选择器的原理
2017/08/01 jQuery
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
JS表单验证插件之数据与逻辑分离操作实例分析【策略模式】
2020/05/01 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
vue v-for 点击当前行,获取当前行数据及event当前事件对象的操作
2020/09/10 Javascript
在类Unix系统上开始Python3编程入门
2015/08/20 Python
Python2.x利用commands模块执行Linux shell命令
2016/03/11 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python编程实现希尔排序
2017/04/13 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
程序员的七夕用30行代码让Python化身表白神器
2019/08/07 Python
Python 爬虫实现增加播客访问量的方法实现
2019/10/31 Python
Python+PyQt5+MySQL实现天气管理系统
2020/06/16 Python
英国、欧洲和全球租车服务:Avis英国
2016/08/29 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
导购员的岗位职责
2014/02/08 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
好好学习保证书
2015/02/26 职场文书
Python常用配置文件ini、json、yaml读写总结
2021/07/09 Python
Python实现查询剪贴板自动匹配信息的思路详解
2021/07/09 Python