django第三课 模版

第一步 创建项目文件:

    django-admin.py startproject *** 

第二步 进入该文件下创建文件夹templates,在该文件夹下创建thanks.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Odering Notice</title>
</head>
<body>

<h1>Ordering Notice</h1>

<p>Dear {{person_name}},</p>

<P>Thanks for placing an oder form {{company}}.It's scheduled
ship on {{ship_date|date:"F j,Y"}}</P>

<P>Here are the items you've order:</P>

<U>
    {% for item in item_list %}
    <li>{{item}}</li>
    {% endfor %}
</U>

{% if ordered_warranty %}
    <p>Your warranty information will be included in tne packaging. </p>
{% else %}
    <p>You didn't order a warranty, so you're on your own when
    the products inevitably stop working.</p>
{% endif %}

<p>Sincerely,<br/>{{company}}</p>

</body>
</html>

第三步 修改settings.py

第四步 新建views.py(与settings.py处于同一文件夹下)

from django.http import HttpResponse,Http404
import datetime
from django.shortcuts import render_to_response

def thanks(request):
    return render_to_response("1.html",{'person_name':'ABC','company':'ABC','ship_date':datetime.date(2017,12,24),'ordered_warranty':True})

第五步 修改urls.py(这里我修改了代码,红色部分)

from django.conf.urls import url
from myThirdproject.views import current_datetime,hours_ahead,hello,thanks,current_datetime1,hours_ahead1

urlpatterns = [
    url(r'^thanks/$', thanks),
]

第六步 启动server

  python manage.py runserver

OK 搞定!!!!

以上介绍了django的简单数据绑定,详细内容大家可以百度文档,下面来介绍一下django是如何实现以上功能的,首先,windows键+R进入DOS,输入:python manage.py shell,进入python交互界面(注意如果要在pycharm里面运行还要配置环境变量比较麻烦),输入以下:

>>> from django.template import Template, Context
>>> raw_template = """<p>Dear {{ person_name }},</p>
...
... <p>Thanks for placing an order from {{ company }}. It's scheduled to
... ship on {{ ship_date|date:"F j, Y" }}.</p>
...
... {% if ordered_warranty %}
... <p>Your warranty information will be included in the packaging.</p>
... {% else %}
... <p>You didn't order a warranty, so you're on your own when
... the products inevitably stop working.</p>
... {% endif %}
...
... <p>Sincerely,<br />{{ company }}</p>"""
>>> t = Template(raw_template)
>>> import datetime
>>> c = Context({'person_name': 'John Smith',
... 'company': 'Outdoor Equipment',
... 'ship_date': datetime.date(2009, 4, 2),
... 'ordered_warranty': False})
>>> t.render(c)
u"<p>Dear John Smith,</p> <p>Thanks for placing an order from Outdoor
Equipment. It's scheduled to ship on April 2, 2009.</p> <p>You
didn't order a warranty, so you're on your own when the products
inevitably stop working.</p> <p>Sincerely,<br />Outdoor Equipment
</p>"

下面来解释一下结果为什么是这样:

  首先我们导入 (import)类 Template 和 Context ,它们都在模块 django.template 里。
  我们把模板原始文本保存到变量 raw_template 。注意到我们使用了三个引号来 标识这些文本,因为这样可以包含多行。
  接下来,我们创建了一个模板对象 t ,把 raw_template 作为 Template 类构造函数的参数。我们从Python的标准库导入 datetime 模块,以后我们将会使用它。
  然后,我们创建一个 Context 对象, c 。 Context 构造的参数是Python 字典数据类型。 在这里,我们指定参数 person_name 的值是 'John Smith', 参数company 的值为‘Outdoor Equipment’ ,等等。
  最后,我们在模板对象上调用 render() 方法,传递context参数给它。 这是返回渲染后的模板的方法,它会替换模板变量为真实的值和执行块标签。
  注意,warranty paragraph显示是因为 ordered_warranty 的值为 True. 注意时间的显示, April 2, 2009, 它是按 'F j, Y' 格式显示的。

一旦有了 模板对象,你就可以通过它渲染多个context, 例如:
>>> from django.template import Template, Context
>>> t = Template('Hello, {{ name }}')
>>> print t.render(Context({'name': 'John'}))
Hello, John
>>> print t.render(Context({'name': 'Julie'}))
Hello, Julie
>>> print t.render(Context({'name': 'Pat'}))
Hello, Pat

原文地址:https://www.cnblogs.com/ybf-yyj/p/8120151.html