============================ Django Step by Step (三) ============================ :作者: limodou :联系: limodou@gmail.com :版本: 0.1 :主页: http://wiki.woodpecker.org.cn/moin/NewEdit :BLOG: http://www.donews.net/limodou :版权: FDL .. contents:: 目录 .. sectnum:: 引言 ===== 本教程只想从浅到深地将大家带入到 Django_ 的世界,因此都是以简单的例子出发,而且这些例子都是为了说明问题,本身并没有什么实际的意义。因此许多高级话题都无法涉及,需要大家自行看文档,做试验。 .. _Django: http://www.djangoproject.com/ 从上一例我们看到,表格的生成是直接在 ``index()`` 函数中返回的 HTML 代码,这种混合方式对于大型开发非常不好,下面我们就学习模板的使用。 Django 自带有模板系统,但你可以不使用它,只要在 ``return`` 前使用自已喜欢的模板系统进行处理,然后返回即可。但 Django 自带的模板系统有很多特点,我不做过多的说明。我只是想使用它。 现在我的问题就是: 我有一个通讯录数据,我想使用一个表格来显示。 为了方便,我们不需要使用数据库,因此我把它存在 view 文件中。 创建 list.py ============== :: #coding=utf-8 from django.shortcuts import render_to_response address = [ {'name':'张三', 'address':'地址一'}, {'name':'李四', 'address':'地址二'} ] def index(request): return render_to_response('list.html', {'address': address}) .. note:: 我使用了汉字,并且字符的编码使用了 utf-8 ,请注意,而且以后如果不特别注明,所有的带汉字的文件,包括模板都将使用 utf-8 编码。 这里使用了一个新方法是 ``render_to_response`` ,它可以直接调用模板并返回生成好的文本,直接返回它即可。它接收两个参数,第一个是模板的文件名。 .. note:: 在 Django 0.91 中,模板文件都是以 ``.html`` 结尾的,并且使用时是不带后缀的。但 0.95 版本取消了缺省模板后缀的设置,因此模板文件名必须是完整的,不再有默认后缀了。 第二个参数是一个字典,这里只有一个 Key ,名字是 ``address`` ,它的值是一个字典的列表。只要注意模板所接收的就是这样的字典和包含字典的列表就行了。 .. note:: 在0.91中 ``render_to_response`` 是在 ``django.core.extensions`` 中的,而到了 0.92 转变为 ``django.shortcuts`` 。 在 newtest 中创建 templates 目录 ================================= 用来存放模板文件 修改 settings.py ================== :: TEMPLATE_DIRS = ( # Put strings here, like "/home/html/django_templates". # Always use forward slashes, even on Windows. './templates', ) 如果有多个模板目录,加进去就行了。 Django 会按顺序搜索的。 .. note:: Django 还支持在 App 中定义一个 templates 目录。这样 Django 在启动时会检查所有安装的的 App 的 ``templates`` 目录,如果存在,则将路径的搜索放在 ``TEMPLATE_DIRS`` 之后。这样就可以很方便地管理你的模板了。 创建 templates/list.html =========================== ::
姓名 | 地址 |
---|---|
{{ user.name }} | {{ user.address }} |