Django系列教程:五、模板的使用

注明:python版本为3.3.1、Django版本为1.5.1,操作系统为Windows7,其他版本有一些不同的地方读者可以自行探讨。

第四章我们讲到了模板的一些基本概念和几个常用的函数,下面我们就来讲讲如何使用Django的模板机制来处理静态网页模板。

下面我们用前面几章讲过的内容从新新建一个工程,具体操作代码如下,有不明白的请翻看前面的内容。

django-admin.py startproject testtemplate#创建新的站点
python manage.py runserver#运行web服务

进入testtemplate文件夹再创建template文件夹,然后再在template文件夹内部创建一个html文件,其文件夹结构和html代码如下。
文件结构(tree命令):

└─testtemplate
   │  manage.py
   │
   └─testtemplate
       │  settings.py
       │  urls.py
       │  wsgi.py
       │  __init__.py
       │
       ├─template
       │      template.html
       │
       └─__pycache__
               settings.cpython-33.pyc
               wsgi.cpython-33.pyc
               __init__.cpython-33.pyc

HTML代码:

<html>
<head>
<title>测试Django模板</title>
</head>
<body>
It is now {{ nowdate }}.<br />
<p>我的名字叫{{name}}.</p>
<p>我爱{{favourite}}.</p>
</body>
</html>

好了上面的文档创建好以后,下面就是我们配置使用模板了。

第一步:打开你的settings.py配置文件,找到TEMPLATE_DIRS这项设置吧。 它的默认设置是一个空元组(tuple),加上一些自动生成的注释。其原始代码如下:

 

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
)

看到上面的内容,聪明的你应该明白该怎么做了吧,对,就是把放html文件的template文件夹的路径放到上面去,注意上面代码中的示例是templates文件夹,而我们这得文件夹名字叫做template。修改好的代码如下:

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    "D:/Djcode/testtemplate/testtemplate/template",#注意斜杠的方向还有最后面的这个逗号是元组的习惯写法
)

第二步:下面开始写处理代码。我们在和settings同一级的目录下创建一个文件比如:handle.py文件,其功就相当于前面讲的Context()函数。其代码如下:

from django.template.loader import get_template
from django.template import Template,Context
from django.http import HttpResponse
import datetime
def timenow(request):
    now=datetime.datetime.now()
    na="Django"
    fa="编程!"
    t=get_template('template.html')
    html=t.render(Context({'nowdate':now,'name':na,'favourite':fa}))
    return HttpResponse(html)

其中的get_template()函数其实就是将html里卖弄的内容复制过来了,和Template()函数效果差不多。

最后一步:修改urls.py的路由文件。代码如下:

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
#from testtemplate.handle import ttemplate
urlpatterns = patterns('',
    url(r'^testtemplate/$','testtemplate.handle.timenow',name='testtemplate'),
    # Examples:
    # url(r'^$', 'testtemplate.views.home', name='home'),
    # url(r'^testtemplate/', include('testtemplate.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),     
)

然后打开浏览器输入:http://127.0.0.1:8000/testtemplate/ 即可看到下面的界面。

———————————————————————————————————————

好了,今天就先到这吧,下一章我们将讲解模块的一些知识。

本人既是python的初学者也是Django的初学者,写这一系列教程的目的就是为了加深自己的理解,希望大家多多包涵和指教,有什么问题请留言,谢谢。

posted @ 2013-05-19 20:36  倾杯天涯  阅读(1591)  评论(0编辑  收藏  举报