django开发框架-view & template

django框架的主要模型是MVT,Model模型,View视图,Template模板,基于基本的HttpRequest方式。

django支持的数据库有四种:PostgreSQL,MySQL, Oracle,SQLite3。(所以目前应该把精力放在PostgreSQL上)

1.新建工程:django-admin.py startproject mysite,新建的mysite的目录下有四个文件:__init__.py, manage.py, settings.py, urls.py 。

2.运行开发服务器:python manage.py runserver。(这是内建的、轻量的web服务)(如何非本地IP访问?)

3.

4.

5.

6.

7.

8.

9.(忘记保存了,我草)

10.模板的深度变量查找:使用句点符号 . 。据点查找规则:字典类型查找,属性查找,方法调用,列表类型索引查找。设置函数属性function.alters_data = true ,在模板载入时,方法就不会执行。如果变量不存在,就处理成空字符串。context对象可以像字典一样insert, delete。

11.模块标签:if/else {% if bool %} ... {% else %} ... {% endif %}, if标签不允许在同一个标签中使用 and 和 or ,不支持用圆括号来组合比较操作。for {% for athlete in athlete_list %} ... {% endfor %} ,for 标签还有一个可选的 {% empty %}标签,当列表为空时使用。有一个forloop的模板变量。ifequal/ifnotequal 标签,只有模板变量,字符串,整数和小数可以作为该标签的参数。注释 {# comment #} ,多行注释 {% comment %} ... {% endcomment %}。 过滤器使用管道字符,可以套接,过滤器参数跟随冒号之后并且总是用双引号包含。

1 def current_time(request):                                                  |   ~                          
2  10     now = datetime.datetime.now()                                           |   ~                          
3  11     t = get_template('mytemplate.html')                                     |   ~                          
4  12     html = t.render(Context({'current_date': now}))                         |   ~                          
5  13     return HttpResponse(html)

12.先在settings.py中设置template_dirs,然后编写html代码,再到views.py中编写对应的视图代码。

1 def current_time(request):
2     now = datetime.datetime.now()
3     return render_to_response('mytemplate.html', {'current_date': now})

另一种写法:使用python的内建函数locals()

def current_time(request):
    current_date = datetime.datetime.now()
    return render_to_response('mytemplate.html', locals())

get_template()函数可以使用子目录。

13.include模板标签。模板继承,代码示例:

base.html:

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
 2 <html lang="en">
 3 <head>
 4     <title> {% block title %}{% endblock %} </title>
 5 </head>
 6 <body>
 7     <h1> My helpful timestamp site </h1>
 8     {% block content %}{% endblock %}
 9     {% block footer %}
10     <hr>
11     <p>Thank for visiting my site.</p>
12     {% endblock %}
13 </body>
14 </html>

current_date.html:

1 {% extends "base.html" %}
2 
3 
4 {%block title%}The current time{% endblock %}
5 
6 {%block content%}
7 <p>It is now {{ current_date }}.</p>
8 {% endblock %}

简单的视图模式和模板模式介绍完毕。

 

posted @ 2015-03-14 20:42  nuaalida  阅读(252)  评论(0编辑  收藏  举报