浅谈django的render函数的参数问题


Posted in Python onOctober 16, 2018

hello.html 文件代码如下:

HelloWorld/templates/hello.html 文件代码:
<h1>{{ hello }}</h1>

HelloWorld/HelloWorld/view.py 文件代码:

# -*- coding: utf-8 -*-
 
#from django.http import HttpResponse
from django.shortcuts import render
 
def hello(request):
 context   = {}
 context['hello'] = 'Hello World!'
 return render(request, 'hello.html', context)

ontext 字典中元素的键值 "hello" 对应了模板中的变量 "{{ hello }}"。

一旦你创建一个 Template 对象,你可以用 context 来传递数据给它。 一个context 是一系列变量和它们值的集合。

context 在 Django 里表现为 Context 类,在 django.template 模块里。它的构造函数带有一个可选的参数: 一个字典映射变量和它们的值。 调用 Template 对象 的 render() 方法并传递 context 来填充模板:

>>> from django.template import Context, Template

>>> t = Template('My name is {{ name }}.')

>>> c = Context({'name': 'nowamagic'})

>>> t.render(c)

u'My name is nowamagic.'

我们必须指出的一点是,t.render(c) 返回的值是一个 Unicode 对象,不是普通的 Python 字符串。 你可以通过字符串前的 u 来区分。 在框架中,Django 会一直使用 Unicode 对象而不是普通的字符串。 如果你明白这样做给你带来了多大便利的话,尽可能地感激 Django 在幕后有条不紊地为你所做这这么多工作吧。 如果不明白你从中获益了什么,别担心。你只需要知道 Django 对 Unicode 的支持,将让你的应用程序轻松地处理各式各样的字符集,而不仅仅是基本的A-Z英文字符。

from django.shortcuts import render

help文档中描述如下:

render(request, template_name, context=None, content_type=None, status=None, using=None)

Returns a HttpResponse whose content is filled with the result of calling django.template.loader.render_to_string() with the passed arguments.

此方法的作用---结合一个给定的模板和一个给定的上下文字典,并返回一个渲染后的 HttpResponse 对象。

通俗的讲就是把context的内容, 加载进templates中定义的文件, 并通过浏览器渲染呈现.

参数讲解:

request: 是一个固定参数, 没什么好讲的。

template_name: templates 中定义的文件, 要注意路径名. 比如'templates\polls\index.html', 参数就要写‘polls\index.html'

context: 要传入文件中用于渲染呈现的数据, 默认是字典格式

content_type: 生成的文档要使用的MIME 类型。默认为DEFAULT_CONTENT_TYPE 设置的值。

status: http的响应代码,默认是200.

using: 用于加载模板使用的模板引擎的名称。

以上这篇浅谈django的render函数的参数问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python数据类型详解(三)元祖:tuple
May 08 Python
详解python并发获取snmp信息及性能测试
Mar 27 Python
基于Python和Scikit-Learn的机器学习探索
Oct 16 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
解决Python网页爬虫之中文乱码问题
May 11 Python
Python3使用pandas模块读写excel操作示例
Jul 03 Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
Django ORM实现按天获取数据去重求和例子
May 18 Python
Python中常用的os操作汇总
Nov 05 Python
python3代码输出嵌套式对象实例详解
Dec 03 Python
python文本处理的方案(结巴分词并去除符号)
May 26 Python
django之跨表查询及添加记录的示例代码
Oct 16 #Python
python看某个模块的版本方法
Oct 16 #Python
对python中的 os.mkdir和os.mkdirs详解
Oct 16 #Python
详解Django的model查询操作与查询性能优化
Oct 16 #Python
python查看模块,对象的函数方法
Oct 16 #Python
Python中asyncio与aiohttp入门教程
Oct 16 #Python
python查看模块安装位置的方法
Oct 16 #Python
You might like
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
sae使用smarty模板的方法
2013/12/17 PHP
浅析Yii2缓存的使用
2016/05/10 PHP
从Ajax到JQuery Ajax学习
2007/02/14 Javascript
htm调用JS代码
2007/03/15 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
yepnope.js使用详解及示例分享
2014/06/23 Javascript
javascript简单实现等比例缩小图片的方法
2016/07/27 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
Angular.js自定义指令学习笔记实例
2017/02/24 Javascript
JavaScript 字符串数字左补位,右补位,取固定长度,截位扩展函数代码
2017/03/25 Javascript
手淘flexible.js框架使用和源代码讲解小结
2018/10/15 Javascript
Vue项目使用localStorage+Vuex保存用户登录信息
2019/05/27 Javascript
vue 导出文件,携带请求头token操作
2020/09/10 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
python修改操作系统时间的方法
2015/05/18 Python
Python基于Tkinter实现的记事本实例
2015/06/17 Python
Python使用matplotlib和pandas实现的画图操作【经典示例】
2018/06/13 Python
python 3调用百度OCR API实现剪贴板文字识别
2018/09/04 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
python实现飞行棋游戏
2020/02/05 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
Python 利用Entrez库筛选下载PubMed文献摘要的示例
2020/11/24 Python
Java的基础面试题附答案
2016/01/10 面试题
VC++笔试题
2014/10/13 面试题
C#如何判断当前用户是否输入某个域
2015/12/07 面试题
创业计划书如何吸引他人眼球
2014/01/10 职场文书
汉语言文学毕业生自荐信范文
2014/03/24 职场文书
初三学生个人自我评定
2014/04/06 职场文书
安全保证书范文
2014/04/29 职场文书
班主任先进事迹材料
2014/12/17 职场文书
上帝为你开了一扇窗之Tkinter常用函数详解
2021/06/02 Python
bose降噪耳机音能消除人声吗
2022/04/19 数码科技
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python