..................So..........Use.........mana...................
~> mana init my_project
你已经创建了你的目录结构(如图)
|-app/ ---- __init__.py
|-test/ models.py
my_project - |-config.py views.py
|-requirement.txt forms.py
|-README.md templates
| static
并且在相关文件中预填了代码
config.py预填代码 : 三个配置类, 对应生产、测试、开发环境配置
app/init.py预填代码 : 创建了flask app, 导入了基本配置
在 requirement.txt 中写入你希望安装的扩展的名称
ex:
flask==0.10
click
mana
然后安装
$ mana install --venv
这个命令会自动创建并进入虚拟环境,将requirement文件中的扩展安装在该环境中
如果你希望在全局环境中安装扩展,你可以不使用--venv 选项
$ mana install
这样你的扩展就会被安装到全局中
不过强烈建议使用使用虚拟环境进行开发,参见virtualenv
对于sql数据库的处理, flask-sqlalchemy 是我最常用的扩展,使用mana可以快速集成flask-sqlalchemy并初始化扩展
$ mana sql project_name
接下来,你只需要专心于models.py的数据库类设计与编码了
还可以使用mana创建manage.py集成flask-script和flask-migrate管理我们的项目
$ mana manage project_name
现在可以使用manage.py进行数据库迁移和更新了
$ python manage.py db init
$ python manage.py db migrate -m "v1.0"
$ python manage.py db upgrade
使用manage.py启动服务器(运行项目)
$ python manage.py runserver
使用shell环境
$ python manage.py shell
配置shell环境
如果你希望在shell中自动导入模块(ex: 导入User)的话:
from app.models import User
def make_shell_context():
"""自动加载环境"""
return dict(
app=app,
db=db,
User=User
)
效果:
python manage.py shell
>> User
<class 'app.models.User'>
$ mana blue bluep
这样你就创建了一个叫bluep的蓝图,并在app中注册
你也可以配置蓝图的url前缀
$ mana blue bluep --prefix="/bluep"
这样就可以通过 /bluep/... 去访问蓝图对应的视图
未完 .... 待续 ....
mana最大的好处就是方便、减少重复、快速
但是为了以上这些 mana 放弃了自由 --> 不得不固定的使用某些特定的扩展
每个flask开发者的工具集可能都不一样,mana不一定适合所有人。
所以mana个人感觉还是自己用的顺手些。
处理sql数据库: flask-sqlalchemy
处理登录: flask-login
进行数据库迁移: flask-migrate
进行项目管理: flask-script
后台管理: flask-admin
- 自动处理登录
- init 更加细化: 单文件,无蓝图组织,蓝图组织
- 自动添加测试单元
2015-0910: have an idea
----------------------------------------------------
2015-0911: mana init & mana install & mana sql
----------------------------------------------------
2015-0912: mana manage
----------------------------------------------------
2015-0920: clean this repo..
----------------------------------------------------
2015-1024: hackathon hack
----------------------------------------------------
2015-1024: mana init update, review my old code :(
----------------------------------------------------
2015-1028: complete mana blue, but not test...
----------------------------------------------------
2015-1028: rewrite README for more detail
click源码 😄
click 是flask作者的一个开源项目
flask 作者是我的偶像😼