zoukankan      html  css  js  c++  java
  • django: template variable

    模板变量用双大括号显示,如:

    <title>page title: {{title}}</title>

    一 模板中使用变量

    继续前面的例子,修改 index.html:

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
            <title>{{title}}</title>
            <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
            <meta name="keywords" content="Django Template" />
            <meta name="description" content="Django Template" />
        </head>
        <body>
            <center>{{context}}</center>
        </body>
    </html>

    修改 views.py:

    from django.shortcuts import render_to_response
    
    def index(req):
            return render_to_response('index.html', {'title':'Django Template Variable Sample', 'context':'A Sample Of Variable In Django Template !'})

    访问 http://127.0.0.1:8000/blog/index 可以看到效果。

    二 模板中使用字典变量

    修改 views.py:

    from django.shortcuts import render_to_response
    
    def index(req):
            user = {'name':'eli', 'age':24, 'sex':'male'}
            return render_to_response('index.html', {'title':'Django Sample', 'context':user})

    http://127.0.0.1:8000/blog/index 内容展示如下:

    {'age': 24, 'name': 'eli', 'sex': 'male'}

    模板中可以直接使用字典的键,index.html 可以如下:

    <body>
            <center>{{context.name}}</center>
    </body>

    如果模板文件中变量太多,可以使用 locals() 函数返回当前作用域中的所有变量组成的字典,使代码保持整洁漂亮

    1 def index(req):
    2     var1 = getvar1()
    3     var2 = getvar2()
    4     render_to_response('index.htm', locals())

    三 模板中使用类和列表

    views.py:

    from django.shortcuts import render_to_response
    
    class Person(object):
            def __init__(self, name, age, sex):
                    self.name = name
                    self.age = age
                    self.sex = sex
    
            def say(self):
                    return "This is " + self.name
    
    def index(req):
            user = Person('eli', 24, 'male')
            user_list = ['eli', 'lie', 'iel']
            return render_to_response('index.html', {'title':'Django Sample', 'context':user, 'users':user_list})

    index.html:

    <body>
      <center>{{context.name}}</center>

      <center>{{context.say}}</center>
      <center>
        <li>{{users}}</li>
        <li>{{users.0}}</li>
      </center>
    </body>

    注意:

    1 模板中调用对象的方法时,要求方法无参数,且必须有返回值。

    2 模板中调用引用时,优先顺序是:字典、对象属性、对象方法、列表引用

  • 相关阅读:
    js 字符串转化成数字:(实例:用正则检测大于0的正数,最多保留4位小数)
    SQL Server 2008 阻止保存要求重新创建表的更改问题的设置方法
    Entity Framework学习二:定义数据结构
    Entity Framework学习一:在.net类基础上创建新数据库
    Create Primary Key using Entity Framework Code First
    MVC缓存(转载)
    不错的博文地址
    read xml test
    xml读取类
    VS2010+ASP.NET MVC4+EF4+JqueryEasyUI+Oracle项目开发(转载)
  • 原文地址:https://www.cnblogs.com/exclm/p/3346508.html
Copyright © 2011-2022 走看看