标签:
参考资料:Django Web开发指南.pdf 2009年5月第1版
以下内容中,所有提到jackerb都是我自己的项目名称,所以需要根据自己的来设定。
已经有了admin后台管理了,那么,现在就增加上blog应用,来实现写自己的博客的功能。
创建应用blog
使用命令django-admin.py startapp blog,那个书中说用python manage.py startapp blog,其实这是一样的,不过这里需要提一个事情,高版本和低版本的django生成这个blog的位置是不一样的,比如低版本的django那个manage.py文件和settings.py文件这些是在同一个目录下的,但是高版本的manage.py在上一级目录的,在哪都不是问题,关键是你要理解在import这些应用的时候,这个格式,如果你是使用高版本的django,按照书上的执行,生成的blog是和manage.py jackerb这些在同一级目录下的,因此在引用的时候使用import jackerb。但是我在创建blog的时候,没有在manage.py文件所在的目录下,我是又进入了jackerb目录下执行的django-admin.py startapp blog,所以我在使用blog的时候,要
import jackerb.blog,就这么点区别。
因此,我先进入jackerb目录,然后执行django-admin.py startapp blog
然后看到blog目录下的文件结构是这些:
我这里没有提到这些东西都是干什么的,因为都是在书里看的,而我这里只是记录我自己Django+SAE的过程。
2. 修改jackerb/settings.py文件,增加blog
找到INSTALLED_APPS,在最后加上‘jackerb.blog‘
3. 修改blog/models.py,增加Blog类
from django.db import models
from django.contrib import admin
class Blog(models.Model):
title = models.CharField(max_length=200)
category = models.CharField(max_length=200)
body = models.TextField()
timestamp = models.DateTimeField()
admin.site.register(Blog, BlogAdmin)
现在把刚才所有增加的文件和修改的文件都用svn add和svn commit增加并提交。
我的上面有一个错误,就是图片中参数里面model.Model,其实是models.Model。
4. 现在新增加了blog应用后,就需要同步数据库了
前面我们提到过,在settings.py中我们使用了一个monkey的模块,在需要同步数据库的时候,我们需要把这个注释去掉,所以我本地把这个注释去掉,不需要提交。这时候执行,python manage.py syncdb。
就会生成blog有关的表了。生成后不要忘了把monkey再注释上。
5. 打开http://jackerb.sinaapp.com/admin/
这时候就可以看到已经有了blog了。这时候我们就可以,点击增加add,来增加我们自己的博客了。其实现在完成可以使用了,只要自己不觉得麻烦。并且,现在就可以把我们自己的博客在这里写了。
这时候写完,发现名字显示的都是Blog object,没有显示我们定义的博客名称,现在就来设置一下。
修改blog/models.py
from django.db import models
from django.contrib import admin
class Blog(models.Model):
title = models.CharField(max_length=200)
category = models.CharField(max_length=200)
body = models.TextField()
timestamp = models.DateTimeField()
class BlogAdmin(admin.ModelAdmin):
list_display = (‘title‘, ‘category‘, ‘timestamp‘)
admin.site.register(Blog, BlogAdmin)
把修改提交到SAE上,这时候刷新以前的网页,就可以看到博客按照标题、类别、时间来显示了。
这一节,就到这里,之后我会把自己的博客内容弄到我自己的SAE上。现在我们可以来编辑自己的博客了,但是要让别人看到怎么办呢,这个页面是不能给别人来看的,下一节就按照那个资料中说的,继续操作。
标签:
原文地址:http://my.oschina.net/bxxfighting/blog/517436