没什么好说的,这仅仅是一个简单的blog程序,开发的动机是熟悉BAE的python环境和对Octopress主题及其代码高亮的喜爱。
做好了BAE上的版本后,对其做点修改,也轻松运行在SAE上。
ijd8的特点、结构、环境
- 语言:python
- 框架:tornado
- 模板引擎:tenjin
- 数据库:mysql
- 编辑器:markitup for markdown
- 主题:Octopress
- 运行环境:SAE 或 BAE
- 代码高亮:pygments
在BAE上部署
目前BAE有挺多的免费配额,对一个博客足够了,重要的是可以自由绑定承诺已备案的域名。只需初始化mysql,在mysql 管理界面运行site.sql文件,建立一个BCS BUCKET 用来上传附件,当然也可选用七牛来储存。修改setting.py 修改为自己的blog信息,尤其留意:填mysql 数据库名称。
在SAE上部署
SAE目前较稳定,收费方案也已明确,对开发者的照顾也很多。部署过程也差不多,比BAE少了一点是不用在setting.py 里面填写数据库信息。SAE上要建立一个Storage 来存放上传的附件。
另外,SAE上没有markdown 和 pygments,还好这两个都是纯python,直接把包放在程序目录下就能运行。
使用Memcache
BAE 和SAE 版上均没使用缓存,可以自行改造(当你的blog访问量很大,mysql消耗巨大时),缓存边栏的信息及相关文章的数据,以减少mysql操作。
运行在vps上
目前还没有vps版的,当然你也可以做简单的改造,让其运行在vps上。基于SAE版改造(BAE 分views.py 和admin.py,SAE 把两者合为views.py)。
最简单的改造是使用wsgiref,在views.py下面添加
1
2
3
4
if __name__ == "__main__":
import wsgiref.simple_server
server = wsgiref.simple_server.make_server('', 8888, application)
server.serve_forever()
上面只是最简单的改造,如果运行在vps上,使用tornado 就应该用它自带的httpserver和ioloop,代码参见tornado 的blog demo。
把views.py里面的class Application(tornado.wsgi.WSGIApplication)改为class Application(tornado.web.Application)
应该注意的小问题
当成功建立数据库、上传代码后,打开网站时会自动转到管理员界面,由于没有默认用户,要注册一个用户作管理员。若忘记了管理员和登录密码,则需要到数据后台,打开表oppy_user,删除里面的数据,再打开/admin/ 就可重新注册为管理员。