边学边体验django
django菜鸟入门连接:http://www.runoob.com/django/django-template.html
安装以及Demo里面都有。
我边学边在电脑上演示,然后发现一些和实际不一样的地方:
1.Hello World, demo我电脑上跳出,不识别 patterns 错误。
经过看看代码,我改成: urlpatterns.append(url('^hello/$',hello) 可以运行
2. 添加template,用render 来渲染页面时。添加 template 的dir时,可以使用os.path.join(BASE_DIR,'templates') 做到。
templates 文件夹应该放在manage.py同目录
3.html 文档中,关键字 比如 {% if xxx %}, 之间要有空格
标签有:
if/else 标签
基本语法格式如下:
{% if condition %}
... display
{% endif %}
或者:
{% if condition1 %} ... display 1 {% elif condiiton2 %} ... display 2 {% else %} ... display 3 {% endif %}
{% if %} 标签接受 and , or 或者 not 关键字来对多个变量做判断 ,或者对变量取反( not )
{% for athlete in athlete_list %} <li>{{ athlete.name }}</li> {% endfor %}
{% for athlete in athlete_list reversed %}
...
{% endfor %}
{% ifequal user currentuser %}
<h1>Welcome!</h1>
{% endifequal %}
ifnotequal
{# 这是一个注释 #}
{{ name|lower }}
有些过滤器有参数。 过滤器的参数跟随冒号之后并且总是以双引号包含。 例如:
{{ bio|truncatewords:"30" }}
其他过滤器:
- addslashes : 添加反斜杠到任何反斜杠、单引号或者双引号前面。
- date : 按指定的格式字符串参数格式化 date 或者 datetime 对象,实例:
{{ pub_date|date:"F j, Y" }}
- length : 返回变量的长度。
{% include %} 标签允许在模板中包含其它的模板的内容。
继承:
base
{% block blockname %}
...
{% endblock %}
继承:
{% extends 'basename.html' %}
{% block blockname %}
...
{% endblock}
继承和Include的区别:
继承是完成覆盖,我没有找到添加自己内容的方法
Include可以添加自己的内容