ijd8.COM

A simple blog for an old Ma Nong.

ijd8开源了

Permalink

没什么好说的,这仅仅是一个简单的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下面添加

Python: run wsgiref
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/ 就可重新注册为管理员。

开源地址

GIthub https://github.com/ego008/ijd8

Write a Comment

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.16.7 Processed in 1ms