经过漫长的备案,网线总算是上线了,接下来应该是各种小修小补,力求完善功能和增强体验。 我的个人技术博客:http://www.qiangtaoli.com/
一个用python3.5.1实现的个人博客网站,内含自己实现的简易版ORM框架和Web框架,欢迎查看学习。如果喜欢的话,可以点击右上角的Star按钮支持下我^_^
用Flask重建过后端,只花了一周的时间,感叹Flask这个轻框架的结构真的是太优雅了!基本上是无痛切换,如果你想深入学习MVC框架,那你最好也看一下我用Flask框架实现的mblog-Flask,你会对整个框架的架构有更深的体会的。
此博客基本按照廖雪峰的python3教程实战部分来编写,经过不少简化或重构而成(基本上看不懂的地方最后弄明白再改写了),欢迎发起pull request来完善注释和功能。
- 客户端(浏览器)发起请求
- 路由分发请求(这个框架自动帮处理),add_routes函数就是注册路由。
- 中间件预处理
- 打印日志
- 验证用户登陆
- 收集Request(请求)的数据
- RequestHandler清理参数并调用控制器(Django和Flask把这些处理请求的控制器称为view functions)
- 控制器做相关的逻辑判断,有必要时通过ORM框架处理Model的事务。
- 模型层的主要事务是数据库的查增改删。
- 控制器再次接管控制权,返回相应的数据。
- Response_factory根据控制器传过来的数据产生不同的响应。
- 客户端(浏览器)接收到来自服务器的响应。
直到现在才发现有需要写一个更新日志...orz
最近在学习前端,更新应该还是很频繁的。
点我查看更新
##准备工作 请确保你已经安装以下的库
-
python3.5 及以上版本
-
aiohttp: 支持异步http服务器
-
jinja2: python的模板引擎
-
aiomysql: aiomysql针对asyncio框架用于访问mysql的库
-
Pygments:用于实现网页代码高亮的库
-
mistune: 将文本markdown化,结合Pygments可以精确高亮绝大多数编程语言
所有的库都可以通过pip安装,或者更方便地使用pip install -r requirements.txt
命令来安装。
###项目结构
mblog/ <--根目录
|
+-conf/ <--服务器配置目录
|
+-db_init/ <--数据库初始化文件目录
|
+-log/ <--服务器日志目录
|
+-www/ <--web项目目录
|
+-config/ <--项目配置目录
|
+-app/ <--app目录
| |
| +-frame/ <--web和orm框架
| |
| +-static/ <--静态文件
| |
| +-templates/ <--模板文件
| |
| +__init__.py <--app初始化
| |
| +factorys.py <--工厂函数
| |
| +models.py <--模型(数据库的表)
| |
| +-route.py <--路由
| |
| +-api.py <-- api接口
|
orm_test.py <--测试orm
|
pymonitor.py <--监视器
|
run.py <--主运行文件
- 把前端迁移到Bootstrap框架,全面支持响应式布局 (达成)
- 因为js的数据处理和前端绑定,js代码估计也需要修改,然而我还未学过javaScript (达成)
- 将来肯定要支持代码高亮的 (达成)
- 数据库可迁移也是要弄的 (0%)
- 编写更安全更可扩展的Restful api v2 (75%)
- 添加Aboat me页面 (0%)
- 添加测试功能 (0%)
只支持python代码的高亮。现在好像还没有支持python3.5的新语法,我也不知道为什么,明明在pygments官网示范是支持的。只支持区块代码的高亮,markdown默认区块代码是前面四个空格。- 支持html语法高亮,代码需要以
<
开头 - 支持javascript语法高亮,代码需要以
var
或function
或$
开头 - 支持python3语法高亮,默认就是python3的解析器
- 支持php语法高亮,代码需要以
<?php
开头 - 支持大部分语言的代码高亮,需要用```(lang)\n(code)\n```包裹