使用模板
在blog目录下建立templates文件夹(名字不能错),在其中建立archive.html文件作为页面显示
{%for post in posts%} <h2>{{post.title}}</h2> <p>{{post.timestamp|date:"l,F jS"}}</p> <p>{{post.body}}</p> {%endfor%}
在blog/view.py中建立url响应处理
from django.template import loader,Context from django.http import HttpResponse from blog.models import BlogPost def archive(request): posts = BlogPost.objects.all() t = loader.get_template("archive.html") c = Context({'posts':posts}) return HttpResponse(t.render(c))
创建URL模式,在mysite/url.py中写以下代码:
url(r'^blog/', include('blog.urls')),
在mysite/blog/中建立urls.py
from django.conf.urls import patterns, include, url from blog.views import archive urlpatterns = patterns('', url(r'^$', archive), )
访问localhot:8080/blog,可以看见archive.html的展示
但是样式过于单一,可以更改。
在templates下新建base.html作为基础模板,让其他的模板继承这个模板的样式
<html> <style type="text/css"> body {color : #efd;background:#453;padding:0 5em; margin: 0} h1{padding:2em 1em;background:#675} h2{color:#bf8;boder-top:1px dotted #fff ; margin-top:2em} p{margin:1em 0} </style> <body> <h1>mysite.example.com</h1> {%block content%} {%endblock%} </body> </html>
更改archive.html
{% extends "base.html"%} {%block content%} {%for post in posts%} <h2>{{post.title}}</h2> <p>{{post.timestamp|date:"l,F jS"}}</p> <p>{{post.body}}</p> {%endfor%} {%endblock%}
再次访问localhost:8080/blog,发现样式的改变。
日期的处理
排序可以再model里面做处理,在model.py中加入嵌套类
class Meta: ordering = ('-timestamp',)
再次访问即可发现日期的倒序排序
日期的格式
<p>{{post.timestamp|date:"l,F jS"}}</p>
<p>{{post.timestamp|date}}</p>
<p>{{post.timestamp}}</p>