mblog
经过漫长的备案,网线总算是上线了,接下来应该是各种小修小补,力求完善功能和增强体验。
我的个人技术博客:http://www.qiangtaoli.com/
一个用python3.5.1实现的个人博客网站,内含自己实现的简易版ORM框架和Web框架,欢迎查看学习。如果喜欢的话,可以点击右上角的Star按钮支持下我^_^
用Flask重建过后端,只花了一周的时间,感叹Flask这个轻框架的结构真的是太优雅了!基本上是无痛切换,如果你想深入学习MVC框架,那你最好也看一下我用Flask框架实现的mblog-Flask,你会对整个框架的架构有更深的体会的。
此博客基本按照廖雪峰的python3教程实战部分来编写,经过不少简化或重构而成(基本上看不懂的地方最后弄明白再改写了),欢迎发起pull request来完善注释和功能。
HTTP请求的生命周期
客户端(浏览器)发起请求
路由分发请求(这个框架自动帮处理),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/
|
+-config/
|
+-app/
||
|+-frame/
||
|+-static/
||
|+-templates/
||
|+__init__.py
||
|+factorys.py
||
|+models.py
||
|+-route.py
| |
| +-api.py
|
orm_test.py
|
pymonitor.py
|
run.py
项目近况(Todo list)
把前端迁移到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```包裹