ly286289 / python3-web

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#python blog 一个用python3.5实现的个人博客网站,内含简单的ORM框架和Web框架。

此博客基本按照廖雪峰的python3教程实战部分与灰手的修改

###ORM框架 简化 先将数据库连接池与select\delete\update等SQL语句的封装,将select封装为select函数,由于delete\update无返回列表封装为execute。ORM实现model层与持久化层的模块化通信。只需将与数据库中表对应的模型类进行描述即可,模型类需继承Model类,Model类通过集成dict并通过metaclass(ModelMetaclass)进行映射便可实现模型到SQL的转变。ModelMetaclass通过__new__方法在创建对象时实现数据库主键、其他属性的分类并生成基本SQL语句。而Model类通过整理好的主键、SQL语句等实现基本的查询与存储。

###Web框架 通过调用add_routes实现路由封装,将URL与HTTP方法传到请求处理函数进行处理,在调用请求处理函数前调用RequestHandler的__call__方法,完成请求参数与request的封装,将参数传入到请求处理函数进行处理,其中请求处理函数使用装饰器进行GET\POST封装。请求函数处理后将结果传入middlerwared的response_factory进行返回的response统一封装。

###环境 可通过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                <--主运行文件

About

License:GNU General Public License v3.0


Languages

Language:HTML 34.0%Language:Python 30.7%Language:JavaScript 29.2%Language:CSS 6.2%