详解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编程求质数实例代码
Jan 31 Python
python实现list由于numpy array的转换
Apr 04 Python
python logging日志模块以及多进程日志详解
Apr 18 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
Python中dict和set的用法讲解
Mar 28 Python
opencv3/C++实现视频背景去除建模(BSM)
Dec 11 Python
Django与pyecharts结合的实例代码
May 13 Python
python numpy矩阵信息说明,shape,size,dtype
May 22 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
Python Matplotlib绘图基础知识代码解析
Aug 31 Python
python 绘制正态曲线的示例
Sep 24 Python
Python使用Pygame绘制时钟
Nov 29 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
使用SyntaxHighlighter实现HTML高亮显示代码的方法
2010/02/04 Javascript
JQuery Easyui Tree的oncheck事件实现代码
2010/05/28 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
关于Javascript与iframe的那些事儿
2013/07/04 Javascript
[JSF]使用DataModel处理表行事件的实例代码
2013/08/05 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
jQuery实现文本展开收缩特效
2015/06/03 Javascript
微信小程序开发经验总结(推荐)
2017/01/11 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
jQuery实现checkbox全选功能完整实例
2018/07/12 jQuery
通过webpack引入第三方库的方法
2018/07/20 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
2019/11/01 jQuery
JavaScript语句错误throw、try及catch实例解析
2020/08/18 Javascript
python django集成cas验证系统
2014/07/14 Python
Python中动态获取对象的属性和方法的教程
2015/04/09 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
浅析python内置模块collections
2019/11/15 Python
Pandas 解决dataframe的一列进行向下顺移问题
2019/12/27 Python
Python用K-means聚类算法进行客户分群的实现
2020/08/23 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python修改DBF文件指定列
2020/12/19 Python
HTML5基于flash实现播放RTMP协议视频的示例代码
2020/12/04 HTML / CSS
兰蔻英国官网:Lancome英国
2019/04/30 全球购物
中职应届生会计求职信
2013/10/23 职场文书
大一学生的职业生涯规划书范文
2014/01/19 职场文书
爱心倡议书范文
2014/05/12 职场文书
数控机床专业自荐信
2014/05/19 职场文书
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
公民授权委托书
2014/10/15 职场文书
以权谋私检举信范文
2015/03/02 职场文书
CentOS8.4安装Redis6.2.6的详细过程
2021/11/20 Redis