django学习之模板系统

django模板系统学习笔记之for
在for标签里面,有以下知识点:
forloop.counter
forloop.counter0
forloop.first
forloop.last
forloop.revcounter
forloop.revcounter0
froloop.parentloop
empty

下面我们举例学习:

首先到我们的工程目录下,敲入:

python manage.py shell

# forloop.counter
from django.template import Context, Template
t = Template("""
    {% for item in our_list %}
        <p>{{ forloop.counter }}: {{ item }}</p?
    {% endfor %}"""
)
c = Context({‘our_list‘: [x for x in range(10)]})
print t.render(c)

#forloop.counter0
from django.template import Context, Template
t = Template("""
    {% for item in our_list %}
        <p>{{ forloop.counter0 }}: {{ item }}</p?
    {% endfor %}"""
)
c = Context({‘our_list‘: [x for x in range(10)]})
print t.render(c)

#forloop.first
t = Template("""
    {% for object in objects %}
        {% if forloop.first %}
            <li class="first">
        {% else %}
            <li>
        {% endif %}
        {{ object }}</li>
    {% endfor %}
c = Context({‘objects‘: [x for x in range(10)]})
print t.render(c)

#forloop.last
t = Template("""
    {% for link in links %}{{ link }}{% if not forloop.last %} | {% endif %}{% endfor %}
    """)
c = Context({‘links‘: [‘link‘+ x for x in range(10)]})
print t.render(c)

#forloop.parentloop
t = Template("""
    {% for country in countries %}
    <table>
    {% for city in country.city_list %}
        <tr>
            <td>Country #{{ forloop.parentloop.counter }}</td>
            <td>City #{{ forloop.counter }}</td>
            <td>{{ city }}</td>
        </tr>
   {% endfor %}
   </table>
   {% endfor %}""")
china = {‘city_list‘: [‘shanghai‘, ‘beijing‘]}
usa = {‘city_list‘: [‘xxxx‘, ‘yyy‘]}
countries = [china, usa]
c = Context(countries)
t.render(c)

django学习之模板系统

时间: 2024-10-11 00:09:29

django学习之模板系统的相关文章

django 学习-2 模板

如何使用渲染模板的方法来显示内容. 1.创建一个项目dream django-admin.py   startproject   dream cd  dream    再创建一个应用 python manage.py  startapp  learn 2.把创建的应用-learn加入到 settings.INSTALLED_APPS中 INSTALLED_APPS = (     'django.contrib.admin',     'django.contrib.auth',     'dj

六、Django学习:模板嵌套

blog_list.html,blog_detail.html,blogs_with_type.html这3个文件有大量的重复代码,如果把这些重复的代码提取到另外一个html文件中,也就是使用模板嵌套,就可以达到复用的目的. 在blog templates文件夹下面建立一个新的文件base.html,并将重复的html代码复制进去. <!DOCTYPE html> <html> <head> <meta charset="utf-8">

django 学习-3 模板变量

1.vim learn/home.html <!DOCTYPE html><html><head>        <title>{{title}}</title></head><body><hl>hello {{user}}</hl></body></html>花括号里加入的就是模板变量 2.vim /learn/views.py def  home(request):   

Django学习-6-路由系统

1.url(r'^index/', views.index), 函数处理 url(r'^home/', views.Home.as_view()),           类方法处理 2.url(r'^detail-(\d+).html', views.detail),         动态路由,位置参数 <a href="/detail-{{key}}"></a> def detail(request,nid): 3.url(r'^detail-(?P<n

django 学习-4 模板标签

1.第一个标签是 if 标签 vim  learn/home.html <!DOCTYPE html><html><head>        <title>{{title}}</title></head><body>{% if  user  %}        <li>name: {{user.name}} <li>{%else%}用户不存在{%endif%}</body></ht

第四章:Django 的模板系统(转)

在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代码.网站的设计风格的更变一般来说会比更改后台的 Ptyhon 代码来得频繁,因此如果能够更改设计而不用更改 Python 变得尤为方便. 2 Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML/CSS 编写人员都不应

Django模板系统详解

你可能已经注意到我们在例子视图中返回文本的方式有点特别.也就是说,HTML被硬性地直接写入 Python代码之中. 这种处理会导致一些问题: § 对页面设计的进行任何改变都必须对 Python代码进行相应的修改.站点设计的修改往往比底层Python代码的修改要频繁得多,因此如果可以在不进行 Python代码修改的情况下变更设计,那将会方便得多. § Python代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML

Python框架之Django学习笔记(六)

模板 上篇博文学习了动态视图,但是,视图中返回文本的方式有点特别. 也就是说,HTML被直接硬编码在 Python 代码之中. 1 def current_datetime(request): 2 now = datetime.datetime.now() 3 html = "<html><body>It is now %s.</body></html>" % now 4 return HttpResponse(html) 尽管这种技术便

Django学习系列之模板系统

一.模板标签 if/else {%  if  %}标签检查一个变量的值是否为真或者等于另外一个值,如果为真,系统会执行{%  if  %}和{%  endif  %}之间的代码块,例如: {% if today_is_weekend %} <p>Welcome to the weekend!</p> {% endif %} {%  else  %}标签是可选的,如果不为真则执行{%  else  %}和{%  endif  %}之间的代码块 注意:一定要用{%  endif  %}