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

作者:慢慢的踏实走 时间:2022-07-10 18:39:20 

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: 用于加载模板使用的模板引擎的名称。

来源:https://blog.csdn.net/u013176681/article/details/73844330

标签:django,render
0
投稿

猜你喜欢

  • Python Pygame实现俄罗斯方块

    2023-03-17 07:18:03
  • Python实现希尔排序算法的原理与用法实例分析

    2021-10-19 17:44:08
  • Python Flask-Login实现用户会话管理

    2023-06-05 13:13:50
  • Laravel实现队列的示例代码

    2023-05-28 04:39:21
  • 在IE中使用高级CSS3选择器

    2010-01-22 15:20:00
  • 慎用UL列表

    2009-03-25 20:21:00
  • css有趣而诡异的数组

    2009-02-04 16:06:00
  • 解决CentOS下ImportError: No module named '_sqlite3'的问题

    2022-03-14 20:13:57
  • 历数Firefox2.0对XML处理的改进

    2007-11-27 12:41:00
  • 安装navicat最新详细流程

    2024-01-24 08:49:50
  • 妙用dw图层与表格进行网页布局

    2009-07-14 21:57:00
  • javascript手风琴下拉菜单实现代码

    2024-06-20 19:18:32
  • 超级给力的JavaScript的React框架入门教程

    2024-06-05 09:55:04
  • vue-cli npm如何解决vue项目中缺失core-js的问题

    2024-04-28 09:30:26
  • Python从文件中读取数据的方法步骤

    2023-05-05 07:45:32
  • Mybatis出现ORA-00911: invalid character的解决办法

    2024-01-19 02:41:21
  • Python实现微信机器人的方法

    2023-01-20 17:33:26
  • python实现将list拼接为一个字符串

    2022-10-27 05:50:06
  • Python实现图片滑动式验证识别方法

    2023-11-05 22:14:52
  • Go到底能不能实现安全的双检锁(推荐)

    2024-04-26 17:36:49
  • asp之家 网络编程 m.aspxhome.com