详解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实现分割文件及合并文件的方法
Jul 10 Python
python编程实现随机生成多个椭圆实例代码
Jan 03 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
Python实现基于KNN算法的笔迹识别功能详解
Jul 09 Python
通过python爬虫赚钱的方法
Jan 29 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
Python装饰器原理与基本用法分析
Jan 07 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
Feb 14 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
opencv 图像加法与图像融合的实现代码
Jul 08 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
Dec 04 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
PHP实现的汉字拼音转换和公历农历转换类及使用示例
2014/07/01 PHP
ThinkPHP行为扩展Behavior应用实例详解
2014/07/22 PHP
php计算多个集合的笛卡尔积实例详解
2017/02/16 PHP
简单谈谈PHP中的trait
2017/02/25 PHP
浏览器无法运行JAVA脚本的解决方法
2008/01/09 Javascript
jQuery 1.3 和 Validation 验证插件1.5.1
2009/07/09 Javascript
多个datatable共存造成多个表格的checkbox都被选中
2013/07/11 Javascript
js实现倒计时时钟的示例代码
2013/12/17 Javascript
js下将阿拉伯数字每三位一逗号分隔(如:15000000转化为15,000,000)
2014/06/02 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
jQuery实现向下滑出的平滑下拉菜单效果
2015/08/21 Javascript
js仿苹果iwatch外观的计时器代码分享
2015/08/26 Javascript
Bootstrap布局组件应用实例讲解
2016/02/17 Javascript
jQuery实现可拖拽的许愿墙效果【附demo源码下载】
2016/09/14 Javascript
JavaScript实现类似淘宝的购物车效果
2017/03/16 Javascript
jquery实现图片轮播器
2017/05/23 jQuery
基于input框覆盖掉数字英文的实例讲解
2017/07/21 Javascript
基于AngularJS的简单使用详解
2017/09/10 Javascript
详解vue-meta如何让你更优雅的管理头部标签
2018/01/18 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
Vue实现微信支付功能遇到的坑
2019/06/05 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
Python语言编写电脑时间自动同步小工具
2013/03/08 Python
pycharm 使用心得(三)Hello world!
2014/06/05 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python+tkinter编写电脑桌面放大镜程序实例代码
2018/01/16 Python
python代码如何注释
2020/06/01 Python
日本索尼音乐商店:Sony Music Shop
2018/07/17 全球购物
Bluebella法国官网:英国性感内衣品牌
2019/05/03 全球购物
预备党员政审材料
2014/02/04 职场文书
班级元旦晚会开幕词
2015/01/29 职场文书
自主招生自荐信范文
2015/03/04 职场文书
演讲稿:态度决定一切
2019/04/02 职场文书
导游词之西递宏村
2019/12/10 职场文书