详解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的chardet库获得文件编码并修改编码
Jan 22 Python
简单的连接MySQL与Python的Bottle框架的方法
Apr 30 Python
python自动zip压缩目录的方法
Jun 28 Python
Python模块结构与布局操作方法实例分析
Jul 24 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
python3获取url文件大小示例代码
Sep 18 Python
python GUI库图形界面开发之PyQt5选项卡控件QTabWidget详细使用方法与实例
Mar 01 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
基于注解实现 SpringBoot 接口防刷的方法
Mar 02 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
在PHP里得到前天和昨天的日期的代码
2007/08/16 PHP
PHP管理依赖(dependency)关系工具 Composer 安装与使用
2014/08/18 PHP
PHP如何将XML转成数组
2016/04/04 PHP
php中请求url的五种方法总结
2017/07/13 PHP
Laravel框架实现model层的增删改查(CURD)操作示例
2018/05/12 PHP
PHP5.0 TIDY_PARSE_FILE缓冲区溢出漏洞的解决方案
2018/10/14 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
jQuery Ajax 全解析
2009/02/08 Javascript
jQuery 类twitter的文本字数限制带提示效果插件
2010/04/16 Javascript
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
javascript 弹出窗口中是否显示地址栏的实现代码
2011/04/14 Javascript
浅析XMLHttpRequest的缓存问题
2013/12/13 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
confirm的用法示例用于按钮操作时确定是否执行
2014/06/19 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
koa-router路由参数和前端路由的结合详解
2019/05/19 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
vue结合el-upload实现腾讯云视频上传功能
2020/07/01 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
[47:06]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第一局
2016/03/05 DOTA
Python常用时间操作总结【取得当前时间、时间函数、应用等】
2017/05/11 Python
pyinstaller参数介绍以及总结详解
2019/07/12 Python
详解python路径拼接os.path.join()函数的用法
2019/10/09 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
tensorflow下的图片标准化函数per_image_standardization用法
2020/06/30 Python
纯css3实现思维导图样式示例
2018/11/01 HTML / CSS
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
高校毕业生登记表自我鉴定
2013/11/03 职场文书
校园创业策划书
2014/01/14 职场文书
大学生2014全国两会学习心得体会
2014/03/10 职场文书
爱心募捐感谢信
2015/01/22 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
离职信范文
2015/06/23 职场文书
字节飞书面试promise.all实现示例
2022/06/16 Javascript