django开发博客(3) 静态文件、from应用与自定义

上一篇博客我们介绍了 django 如何在views中使用templates以及一些常用的数据操作,这篇博客将介绍静态文件的使用、from 应用与自定义

1、静态文件的使用

鉴于我们上次所看到的界面惨不忍睹,为了不影响心情,先介绍一下如何使用静态文件美化界面

首先新建static目录,目录下新建css/js/img三个目录

修改seeting.py文件

修改blog目录下 urls.py 添加以下内容

当然这只是本机测试环境下的使用方法,生产环境这样部署是不可以的。

2、使用bootstrap美化界面

为了方便,我们使用bootstrap进行界面优化,如果你想自己写界面,这一步完全可以跳过去

bootstrap 下载地址 http://twitter.github.com/bootstrap/

中文文档:http://wrongwaycn.github.com/bootstrap/docs/index.html

bootstrap使用非常方便下载解压后 将其中的css/js/img 目录中文件分别放入static目录下相应文件夹就好了,然后修改base.html,在head标签添加

因为bootstrap需要jquery支持,所以必须要引入jquery ,因为我们使用的html5,使用modernizr会自动检测不兼容的浏览器利用js添加相应的功能。

在body添加

现在base.html是这个样子的

 

因为base.html中block越多以后越方便,所以我添加了一些标签,可以暂时忽略

其中用到了bootstrap的布局,阅读文档吧: http://twitter.github.com/bootstrap/scaffolding.html

然后新建一个blog_base.html文件,添加blog中会用到的内容,比如导航栏、搜索框等

 

修改blog_list.html 文件和blog_show.html文件以适应bootstrap

blog_list.html

 

其中

是接下来要说的添加文章的操作

需要在urls.py文件添加

然后添加view

blog_show.html

这其中

 

是我们接下来要说的对blog的修改、删除等操作

3、表单的使用及自定义

通过钱两部,我们美化了一下界面,现在让我们来添加功能吧。

要实现添加博客的功能,我们必须要用到表单。

Django带有一个form库,称为django.forms,这个库可以处理我们本章所提到的包括HTML表单显示以及验证。当然我们现在有两个选择

  • 自己写,完成表单显示以及验证
  • 使用django提供的From

这里我们选择后者,既然我们选择了django,为什么还要重复的造轮子呢?

Form文档在此 https://docs.djangoproject.com/en/dev/topics/forms/ 我就不再介绍了,直接说怎么用吧。

首先修改urls.py 文件添加

然后在sblog目录下新建forms.py文件

 

这里我们只博客的标题和内容

然后新建blog_add.html

添加views

 

使用 form的is_valid()方法,验证它的数据是否合法,如果一个Form实体的数据是合法的,它就会有一个可用的cleaned_data属性。 这是一个包含干净的提交数据的字典。

这里我们默认作者是id=1,当然你也可以自己修改或者根据登录的session读取

博客提交后 使用HttpResponseRedirect 跳转到最新发表的博客页面

因为我们使用的是post 所以必须在表单后面添加 {% csrf_token %} 

然后在视图中使用  context_instance=RequestContext(request)

 

现在你会发现我们并没有使用tags,好吧,现在我们添加 tag标签功能

首先修改forms.py文件 添加

然后修改视图

 

表示将得到的tag字符串用空格分割开 并删除多余空格

get_or_create表示首先获取tag_name 如果存在就不操作,不存在就创建

在blog_add.html 文件合适的位置 添加

 

现在刷新 http://127.0.0.1:8080/sblog/blog/add/ 是不是看到tag输入框了,(添加多个标签使用空格隔开)

 

4、更新文章内容

修改urls.py文件 添加

因为更新和添加所需表单内容相同,这里就直接使用blog_add.html 作为update的模板

在views.py添加

其中

 

作用是将tag与blog关联,并且去掉原有关联修改后不关联的tag 例如blog1 原有tag为1,2 ,3 修改后为2, 3

这里的作用是去除blog1与tag 1的关联

5、删除文章

修改urls.py 添加

修改views.py 添加

 

完成后发现我们并没有相关的update delete 链接

将第二步中的注释去掉吧 现在刷新 blog show 页面是否看到了呢

以上 关于from的内容能在 django book 2    第七章找到

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

文/GoodSpeed Cheng

1 Likes

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