详解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 13 Python
Python写的英文字符大小写转换代码示例
Mar 06 Python
Python数据结构与算法之列表(链表,linked list)简单实现
Oct 30 Python
Python实现邮件的批量发送的示例代码
Jan 23 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python异常处理知识点总结
Feb 18 Python
Pyqt5实现英文学习词典
Jun 24 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
Python多线程及其基本使用方法实例分析
Oct 29 Python
Python selenium使用autoIT上传附件过程详解
May 26 Python
python使用布隆过滤器的实现示例
Aug 20 Python
python爬虫爬取图片的简单代码
Jan 18 Python
python tkinter实现定时关机
Python爬虫之爬取某文库文档数据
Apr 21 #Python
Python数据分析之pandas函数详解
Apr 21 #Python
python基础之停用词过滤详解
Apr 21 #Python
python 模拟在天空中放风筝的示例代码
如何使用Python对NetCDF数据做空间相关分析
python实现简单倒计时功能
You might like
SMARTY学习手记
2007/01/04 PHP
mayfish 数据入库验证代码
2010/04/30 PHP
PHP设计模式之观察者模式(Observer)详细介绍和代码实例
2014/04/08 PHP
Laravel框架路由配置总结、设置技巧大全
2014/09/03 PHP
PHP使用curl制作简易百度搜索
2016/11/03 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
通过js获取div的background-image属性
2013/10/15 Javascript
jQuery获得内容和属性示例代码
2014/01/16 Javascript
完美兼容各大浏览器的jQuery仿新浪图文淡入淡出间歇滚动特效
2014/11/12 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
解析浏览器端的AJAX缓存机制
2016/06/21 Javascript
详解如何较好的使用js
2016/12/16 Javascript
js 用于检测类数组对象的函数方法
2017/05/02 Javascript
BootStrap下的弹出框加载select2框架失败的解决方法
2017/08/31 Javascript
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
Vue面试题及Vue知识点整理
2018/10/07 Javascript
JS动画实现回调地狱promise的实例代码详解
2018/11/08 Javascript
JavaScript实现烟花绽放动画效果
2020/08/04 Javascript
微信小程序onShareTimeline()实现分享朋友圈
2021/01/07 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
python脚本设置系统时间的两种方法
2016/02/21 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
Python实现通过解析域名获取ip地址的方法分析
2019/05/17 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python IDLE添加行号显示教程
2020/04/25 Python
如何利用cmp命令比较文件
2016/04/11 面试题
大学毕业生工作的自我评价
2013/10/01 职场文书
大学军训感想
2014/02/12 职场文书
人力资源经理的岗位职责
2014/03/02 职场文书
地理教师岗位职责
2014/03/16 职场文书
如何在Python中创建二叉树
2021/03/30 Python
Java实现HTML转为Word的示例代码
2022/06/28 Java/Android