详解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 17 Python
django模型层(model)进行建表、查询与删除的基础教程
Nov 21 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python Pillow Image Invert
Jan 22 Python
使用Python在Windows下获取USB PID&amp;VID的方法
Jul 02 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
Pytorch修改ResNet模型全连接层进行直接训练实例
Sep 10 Python
pytorch获取模型某一层参数名及参数值方式
Dec 30 Python
基于Python快速处理PDF表格数据
Jun 03 Python
将tf.batch_matmul替换成tf.matmul的实现
Jun 18 Python
什么是python的自省
Jun 21 Python
Pycharm学生免费专业版安装教程的方法步骤
Sep 24 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
PHP执行速率优化技巧小结
2008/03/15 PHP
php从右向左/从左向右截取字符串的实现方法
2011/11/28 PHP
简单的php数据库操作类代码(增,删,改,查)
2013/04/08 PHP
php5.4传引用时报错问题分析
2016/01/22 PHP
PHP+Ajax实现的无刷新分页功能详解【附demo源码下载】
2017/07/03 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
javascript+mapbar实现地图定位
2010/04/09 Javascript
extJs 下拉框联动实现代码
2010/04/09 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
jQuery版Tab标签切换
2011/03/16 Javascript
Firefox中autocomplete=&quot;off&quot; 设置不起作用Bug的解决方法
2011/03/25 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
javascript基础知识分享之类与函数化
2016/02/13 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
JS简单判断滚动条的滚动方向实现方法
2017/04/28 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
利用JavaScript的Map提升性能的方法详解
2019/08/14 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
win10环境下python3.5安装步骤图文教程
2017/02/03 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
2017/04/19 Python
Python中的并发处理之asyncio包使用的详解
2018/04/03 Python
python3 selenium自动化 frame表单嵌套的切换方法
2019/08/23 Python
python 读取数据库并绘图的实例
2019/12/03 Python
简洁自适应404页面HTML好看的404源码
2020/12/16 HTML / CSS
Schutz鞋官方网站:Schutz Shoes
2017/12/13 全球购物
String是最基本的数据类型吗?
2013/06/13 面试题
教师自荐信
2013/12/10 职场文书
财务管理专业自荐书
2014/09/02 职场文书
政协会议宣传标语
2014/10/09 职场文书
辞职书格式样本
2015/02/26 职场文书
迎新晚会主持词开场白
2015/05/28 职场文书
一篇合格的广告文案,其主要目的是什么?
2019/07/12 职场文书
MySQL中VARCHAR与CHAR格式数据的区别
2021/05/26 MySQL
Nginx安装配置详解
2022/06/25 Servers