- Info
Dev_Blog Python-Release Based On Flask and MongoDB.
- Repository
- Author
Scen.K (http://tuzii.me).
- License
MIT License.
展示站点: <http://staging.tuzii.me> 提供试用和测试.
后端用户名密码:admin, admin. (单进程站点, 请勿频繁尝试发送邮件以及上传图片, 更改用户名密码功能已被禁用).
Dev_Blog2/
.
├── admin 后端Blueprint
│ ├── __init__.py
│ ├── admin.py 后端Handler
│ ├── static 静态文件夹
│ │ ├── css
│ │ ├── images
│ │ ├── js
│ │ └── lib
│ ├── templates 页面文件夹
│ │ └── admin
├── fabfile
│ ├── __init__.py 集成发布Fabric命令
│ ├── redirector.py 301跳转文件生成器
│ └── dbmover.py 博客版本数据库迁移助手
├── frontend 前端Blueprint
│ ├── __init__.py
│ ├── frontend.py 前端Handler
│ ├── templates 页面文件夹
│ │ └── frontend
├── Model
│ ├── __init__.py
│ └── models.py
├── static 静态文件夹
│ ├── css
│ ├── less
│ ├── images
│ ├── js
│ ├── lib
│ ├── favicon.ico
│ └── robots.txt
├── __init__.py
├── README.md 帮助文件
├── requirements.txt Python基础安装包列表
├── runserver.py 用来启动web服务器
├── yuicompressor.jar YUI js,css压缩器
├── config.py 网站初始化设置文件
└── utils 第三方及助手文件夹
├── __init__.py
├── email_util.py 邮件发送器
├── helper 助手文件夹
│ ├── __init__.py
│ ├── html_helper.py html处理助手
│ ├── re_helper.py 正则表达式过滤助手
│ └── upyun_helper.py 又拍云图片上传助手
└── upyun.py 又拍云SDK(v1.0)
版本更替说明:
本项目代码为dev_blog第一版制作并上线半年后重新开发而成
第一版代码库地址:<https://github.com/ScenK/dev_blog/>
在完成第一版本之后 在更多的对python的进一步认识的基础上 考虑到之前第一版继续开发的扩展性受到很大限制 于是开发第二个博客代码版本
- 技术改进:
- 第二个版本后端上仍然采用MongoDB作为数据库 但是增加了新的MongnEngine作为Orm 提供强大的Model层
- 网站从tornado搭建改为flask版本 而tornado退居后台 只进行作为非阻塞服务器使用
- Admin后端放弃使用foundation的框架 而使用了一个全新的模版(colorful life)
- Admin后端放弃使用Markdown的写作方式 而采用了wysiwyg编辑器
- Admin后端放弃使用fineuploader图片上传组建 而采用uploadifive作为替代
- 第一版数据结构优化
版本迁移须知:
第一版本的博客代码 使用一键数据库脚本(已集成在fab命令中)
- 使用步骤:
- config.py设置好目标数据库名称(避免跟原始数据库名称一致)
- 备份导出原始数据库: fab backup_database
- 导入数据库: mongorestore -d dev_blog --drop ~/mongobak/dev_blog
- 执行迁移命令: fab dbmove
- 等待脚本结束
安装须知:
- 项目Wiki地址: (待完成)
- 博客地址: <http://tuzii.me/>
- 推荐使用独立VPS
本博客线上环境: Amazon EC2 + Ubuntu12.04 + Python2.7.3 + Nginx + Tornado + MongoDB2.0.2
- 基础环境:
Linux + Tornado + Python + MongoDB
- 可选环境:
前端使用nginx做多线程反向代理
- 基础环境配好后按照requirements.txt里列出的相关软件包装好
推荐使用pip批量安装
- 启动相关进程(MongoDB, Nginx, Tornado)
安装简介(Ubuntu 12.04为例):
- sudo apt-get install python-pip mongodb gcc openjdk-6-jre-headless lessc
- cd ~/ dev_blog2/
- sudo pip install -r requirements.txt
- sudo pip install tornado
- cd ~/dev-blog2/
- 拷贝 Config/config.py.sample 到 Config/config.py 并更改网站相关设置
- 执行fab build 进行初始化部属(此时会默认生成默认的后台管理员账户密码均为'admin' 请登录后自行修改)
- 执行fab test 开启服务器进程(或者在Supervisor开启python多进程)
- 每次改动的代码更新都可以使用fab update 进行服务端代码自动更新
开发须知:
- 遵循已有代码风格和文件夹风格 欢迎提pull request
- MIT License.
已知同项目, 不同前端风格的网站征集展示:
- 自由&宁静的web前端博客: <http://bo.tuzii.me>
Do it yourself and make joy :)