django开发博客(2) 模板和数据查询

上一篇博客我们介绍了 django的安装配置,新建project,新建app,app配置以及admin的使用,现在让我们来了解一下模板的使用和模型数据的显示。

1、首先介绍如何在视图中使用模板

方法1

 

它使用了模板系统,但是模板仍然嵌入在Python代码里,并未真正的实现数据与表现的分离。 现在让我们将模板置于一个 单独的文件 中,并且让视图加载该文件来解决此问题。

方法2

首先在项目目录下新建templates文件夹 然后在templates下新建sblog文件夹和base.html文件

目录结构为

然后修改setting.py

编写base.html

 

这个叫做 base.html 的模板定义了一个简单的 HTML 框架文档,我们将在本站点的所有页面中使用。 所有的子模板都在重载、添加或保留base.html块的内容。

{% block %}: 所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。 每个{% block %}标签所要做的是告诉模板引擎,该模板下的这一块内容将有可能被子模板覆盖。

然后在sblog目录下新建blog_list.html 添加以下内容

 

templates 标签使用 参见文档 :https://docs.djangoproject.com/en/1.4/topics/templates/

在sblog目录下views.py文件添加 内容

当然,你也可以先修改视图再添加模板

现在视图和模板都完成了,让我们添加url吧

首先修改blog目录下urls.py 文件 添加

然后修改sblog目录下urls.py文件 添加

现在 让我们打开 http://127.0.0.1:8080/sblog/bloglist/  在admin下添加的博客是不是显示出来了呢

这里8080 端口是我自己设置的 默认是情况下8000

当然你也可以自己添加显示的内容 比如 tag author publish_time

以上步骤不分先后,因为必须全部完成后才能在浏览器中显示

2、数据查询与过滤

因为我们只是操作数据可以在终端操作  在终端打开项目目录 输入 python manage.py shell “manager.py shell” 命令是启用Python交互解释器的一种方法 这个方法在这里是很有必要的,因为Django可以通过它知晓数据库连接信息的配置文件。

现在就可以进行数据操作,因为数据想较多,我们在这里只进行查询过滤操作

 

每次都要用 order_by() 显得有点啰嗦。 大多数时间你通常只会对某些 字段进行排序。 在这种情况下,Django让你可以指定模型的缺省排序方式:

修改 models.py

 

3、添加博客展示页面

在sblog目录下添加blog_show.html 文件,添加以下内容

views.py 添加blog_show 视图

 

修改sblog下urls.py (如果不特殊说明,以后修改urls.py文件默认就是sblog目录下的)添加以下内容

修改blog_list.html

改为

{% url detailblog blog.id %} 中 blog.id 是

url(r'^blog/(?P<id>d+)/$', 'blog_show', name='detailblog'),

的 (?P<id>d+) 参数

现在刷新以下bloglist页面 博客标题是不是变成链接了呢,点击查看一下吧.。

当然现在这个界面确实丑的一塌糊涂,好吧我承认这个根本就不配叫做有界面,大家还是自己修改一下吧。

最后源代码可以在  https://github.com/goodspeedcheng/sblog

以上 内容都能在 django book 2   第四章和第五章和第八章 找到

【Django博客开发】系列文章:

文/GoodSpeed Cheng

0 Likes


Loading ....
  • 失落叶 评论于2017-06-19 06:39 回复

    新版的django{% url ‘detailblog’ blog.id %}}貌似要加引号,debug了好久

你目前的身份是游客,评论请输入昵称和电邮!