展示一个网页需要三部分组成:
- urls.py -- 指定网址与对应的视图
- views.py -- 创建试图以及指定对应的模板
- template/*.html -- 对应的模板
一.urls.py
url(r'^$', 'article.views.articles'), url(r'^articles/', include('article.urls')),
'article.views.articles' -- 指定具体的试图
include('article.urls') -- 指定具体应用的试图文件
二.view.py
def articles(request): args = {} args.update(csrf(request)) args['articles'] = Article.objects.all() #return HttpResponse("Hello World") return render_to_response('articles.html', args)
render_to_response('articles.html', args) -- 指定对应的模板,以及传入的参数
三.articles.html及base.html
{% extends 'base.html' %} {% block content %} {% for article in articles %} <p>{{ article.title }}</p> {% endfor %} {% endblock %}
{% load staticfiles %} <!DOCTYPE html> <html> <head> <link rel="stylesheet" type="text/css" href="{% static "css/base.css" %}" /> </head> <body>
... <div id="content-container"> <div id="content"> {% block content %} {% endblock %} </div> </div> </body> </html>
- {% extends 'base.html' %}, 继承模板base.html
- {% block content %},替换基础模板中相应内容
- {% load staticfiles %}, {% static "css/base.css" %} 指定static的对应路径。
其它:
如果模板,静态文件不是放在应用下面的templates,statics默认路径目录下,则需要仔settings.py中定义
STATICFILES_DIRS = ( os.getcwd() + '/static/', ) TEMPLATE_DIRS = ( os.getcwd() + '/templates', )