本文介绍的是在eclipse+pydev 平台下,利用django 搭建blog的第2部分:页面部分(主要涉及3个部分:模板、视图、URL模式)

篇幅1:创建模板

blog目录下新建一个文件夹:templates,添加archive.html文件,让其显示所有blog的内容,代码如下:

	{% for post in posts %}
<h2>{{post.title}}</h2>
<p>{{post.timestamp}}</p>
<p>{{post.body}}</p>
{% endfor %}

  

篇幅2:创建视图函数

from blog.models import BlogPost
from django.template import Context,loader
from django.http import HttpResponse # Create your views here. def archive(request):
posts=BlogPost.objects.all()
t=loader.get_template("archive.html")
c=Context({'posts':posts})
return HttpResponse(t.render(c))

篇幅3:创建一个URL模式

1 myweb.urls.py文件进行编辑如下:

from django.conf.urls import include, url
from django.contrib import admin urlpatterns = [
# Examples:
# url(r'^$', 'myweb.views.home', name='home'),
url(r'^blog/', include('blog.urls')), url(r'^admin/', include(admin.site.urls)),
]

2 在blog下新建urls.py文件,并进行编辑,如下:

#coding=utf-8
from django.conf.urls import url,patterns
from blog.views import archive urlpatterns=patterns('',
url(r'^$',archive) )

 

访问页面查看效果:http://127.0.0.1:8000/blog/

篇幅4: 优化页面-模板+日期显示和排序

1. 设置一个base.html模板,templates下新建base.html文件,编辑如下:

 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<style>
body{color:#efd;background:#453;padding:0.5em;margin:0}
h2{color:#bf8;border-top:1px dotted #fff;margin-top:2em}
p{} </style>
</head>
<body>
{%block content%}
{%endblock%}
</body>
</html>

2. 修改archive.html模板,让其引用base.html模板和它的“content”块,编辑如下:

 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title></title>
</head>
<body>
{%extends "base.html"%}
{%block content%}
{% for post in posts %}
<h2>{{post.title}}</h2>
<p>{{post.timestamp"}}</p>
<p>{{post.body}}</p>
{% endfor %}
{%endblock%}
</body>
</html>

再次访问页面:http://127.0.0.1:8000/blog/

3. 按日期排序,修改blog.models.py文件,增加如下代码class Meta:ordering=('-timestamp',)

from django.db import models
from django.contrib import admin # Create your models here.
class BlogPost(models.Model):
title=models.CharField(max_length=)
body=models.TextField()
timestamp=models.DateTimeField()
class Meta:
ordering=('-timestamp',) class BlogPostAdmin(admin.ModelAdmin):
list_display=('title','timestamp') admin.site.register(BlogPost,BlogPostAdmin)

查看页面

4. 优化日期显示,属于表现层的内容,修改archive.html文件中日期部分即可

<p>{{post.timestamp|date:"Y-m-d H:i:s"}}</p>

 

django构建blog--页面部分(eclipse+pydev)的更多相关文章

  1. django构建blog--建立数据库部分+admin部分(eclipse+pydev)

    本文介绍的是在eclipse+pydev 平台下,利用django 搭建blog的第1部分:建立数据库+admin部分 步骤一:创建myweb项目+blog应用 1. Eclipse下新建一个djan ...

  2. Python开发环境(3):使用Eclipse+PyDev插件创建Django项目

    OS:Windows 10家庭中文版,Python:3.6,Eclipse:Oxygen.1a Release (4.7.1a), PyDev:6.3.2,Django:2.0.3 本文展示了怎么使用 ...

  3. 【转】Eclipse+PyDev 安装和配置

    原文网址:http://www.51testing.com/html/67/589567-866611.html Python开发有很多工具,其中Eclipse+Pydev 是最常见的一种.本文简单介 ...

  4. Python集成开发环境(Eclipse+Pydev)

    刚開始学习python,就用Editplus, Notepad++来写小程序, 后来接触了Sublime Text2.认为很不错,没事写写代码.就用编辑器Sublime Text2,最好再配搭一个ap ...

  5. 【转】使用Python的IDE:Eclipse+PyDev

    原文网址:http://www.crifan.com/try_with_python_ide_eclipse_pydev/ 之前已经介绍过了一些基本知识: [整理][多图详解]如何在Windows下开 ...

  6. Django架设blog步骤

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...

  7. Django架设blog步骤(转)

    最近在研究Python,起初是因为想做个爬虫,昨天看了点基础教程,台湾辅仁大学的视频,了解了python的语法规范及语言特性,主要有三: 1.动态脚本语言: 2.语法简洁,强制缩进: 3.应用广泛,w ...

  8. Python+selenium+eclipse+pydev自动化测试环境搭建

    一.        安装python 1.下载安装python 可访问python的官方网站:http://www.Python.prg找到下载页面下载需要的版本,可下载python2.x或者pyth ...

  9. Django实现注册页面_头像上传

    Django实现注册页面_头像上传 Django实现注册页面_头像上传 1.urls.py 配置路由 from django.conf.urls import url from django.cont ...

随机推荐

  1. u-boot board_uart_init流程

    /** ****************************************************************************** * @author    Maox ...

  2. MySQL连接语法

    http://www.cnblogs.com/hanzhaoxin/p/3590642.html 内连接:INNER  JOIN 内连接为 两个表中必须都同时满足条件 内连接,即最常见的等值连接自然连 ...

  3. php 获取文件后缀名

    $file_ext = strtolower(substr(strrchr($upload_file, '.'), 1)); strrchr:查找指定字符在字符串中的最后一次出现 string str ...

  4. 学习simple.data之进阶篇

    一.结果排序 -OrderBy(升序) -OrderByDescending(降序) db.Product.All().OrderByFactoryName(); db.Product.All().O ...

  5. MySQL线上执行大事务或锁表操作

    前提 在线执行一些大事务或锁表操作(给某个核心级表加一列或者执行修改操作),此时不但主库从库要长时间锁表,主从延迟也会变大.未避免大事务sql对整个集群产生影响,,我们希望一条SQL语句只在Maste ...

  6. C++基本数据类型解惑

    记得刚学C语言的时候,对那些double,float,long,unsigned int各种混乱,基本是随便用,对数据类型没有一个整体的框架.最近学习<<C++ primer plus&g ...

  7. 03-树2 List Leaves

    二叉树及其遍历 一遍AC,挺开心的hhh~ 简单讲下思路:叶子,顾名思义就是没有左右子树的结点.由于题目要求,叶子结点的输出顺序是从上往下,从左往右.所以用层序遍历法. 当然,这里先找到root树的根 ...

  8. python 内存管理

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 语言的内存管理是语言设计的一个重要方面.它是决定语言性能的重要因素.无论是C语言的 ...

  9. SQL Server基本操作积累

    一.基本操作 1.将数据绑定到DataGridVirw控件上显示的数据列标题将会是数据库中的字段名称,可以在使用select语句时使用AS关键字将转化为列名的别名 select name AS 姓名 ...

  10. hdu 1303 Doubles

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=1303 Doubles Description As part of an arithmetic com ...