因为要给项目添加 API ,所以对其进行了重构。 重构前的项目结构:

BookLibrary
|- app/
|  |- static/          css,JavaScript等网页需要的资源
|  |   |- css/
|  |   |- ...
|  |- templates/       放置html模版
|  |- __init__.py
|  |- models.py        模型
|  |- views.py         视图
|  |- forms.py         表单
|  |- ...
|- config.py           配置文件
|- run.py              启动文件
|- venv/               python虚拟环境
|- ...

重构后的项目结构:

BookLibrary
|- app/
|  |- main/
|  |   |- index/
|  |   |   |- __init__.py
|  |   |   |- templates/
|  |   |   |- views.py
|  |   |   |- forms.py
|  |   |- auth/
|  |   |   |- ...         同上
|  |   |- user/
|  |   |   |- ...
|  |   |- book/
|  |   |   |- ...
|  |   |- log/
|  |   |   |- ...
|  |   |- comment/
|  |   |   |- ...
|  |   |- errors.py
|  |- api/
|  |   |- __init__.py
|  |   |- fields.py
|  |   |- user.py
|  |   |- book.py
|  |   |- log.py
|  |   |- comment.py
|  |   |- tag.py
|  |- static/             css,JavaScript等网页需要的资源
|  |   |- css/
|  |   |- ...
|  |- templates/          放置基础html模版
|  |- __init__.py
|  |- models.py           模型
|  |- ...
|- config.py              配置文件
|- run.py                 启动文件
|- venv/                  python虚拟环境
|- ...

api 的目录结构暂时是这样的,以后变得更复杂时再重构。

主要改动,是把原来集中在一个 views.py 和 forms.py 中的试图函数和表单,全部按照功能拆分成用户,书籍,等等python包,放到了main包下。
因为 models.py 在 api 中还有用,所以保留在了app路径下。


重构过程中,使用了蓝图 ( blueprint ) ,按照功能,把各个路由函数注册在不同的端点 ( endpoint )。
重构中还实用了工厂函数来创建 app 主程序。 不过后来想想,并不需要多个 app 实例,就又改回去了。


在写 api 过程中,嵌套的 json 资源写的很累,也很难看,真希望有人指点一下。
目前完成了大部分资源的 get 操作。
后边孤寂要先把登录认证和权限控制写好后,才能继续。好像挺大的坑啊!


想学前端框架 React ,正在看一些官网的教程。
吐槽一下天朝的网络环境,npm 以及 gem 各种被墙
大航海时代禁海,大网络时代禁网。
这样,想师夷长技都困难啊!