start pyhton project(2)

使用模板

在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>

原文地址:https://www.cnblogs.com/yangchengInfo/p/3021267.html