Skip to content
eightHundreds edited this page Mar 1, 2018 · 4 revisions

目录

项目结构说明

|- app
	|- users 用户模块
		|- models.py 用户model类型
		|- controllers.py 用户模块业务逻辑
		|- resources.py 对外api
	...
	|- extensions.py 插件对象
|- migrations 数据库迁移文件
|- client 前端项目
        |- build  webpack配置与脚本
        |- config 项目配置
        |- src
        |- static 静态资源(图片,字体等)
|- doc 文档
|- tests 测试代码
	|- conftest.py 测试固件(Test Fixture)
	|- pytest.ini pytest配置
	|- integration 集成测试
	|- mocks 伪造类
	|- unit 单元测试
|- .travis.yml 持续集成配置
|- .codebeatignore 在线静态代码检测配置
|- Procfile heroku 配置文件

Heroku

这是个免费的空间,该项目的master分支已经用这个部署了 该项目是包含了前后端,前端在client目录下,运行npm run build能执行编译任务,编译的结果会保存到app目录下 如果想更新线上的Heroku需要先在本地npm run build后再用git上传

数据库迁移,命令

注意在迁移中sqlite不支持删除数据库字段,所以要删除字段的话几乎是要删除所有的版本记录(其实删到这个字段添加的记录就行) 每个migrate都要提交信息

python manage.py db stamp 版本号 强制修改当前版本
python manage.py db init 创建migrate文件夹 注意这时候数据库是里面的version文件夹是空de
python manage.py db migrate -m "message" 根据模型设置生成迁移文件
python manage.py db history 查看migrate历史
python manage.py db upgrade [版本名|版本号前缀]
python manage.py db downgrade
python manage.py db current 查python manager.py看当前版本

注意事项

之前设计时是把每个业务模块的model放到相应的业务模块文件夹下,比如app/users/model.py 在统一用app/models.py来引用每个业务的model类,使用时只需要from app import model,model.User.dosomething

但现在有人把所有类放到app/models.py,但这没关系后面的开发会证明哪种设计更合适,现在只要记住,所有对model的引用都通过from app import model方式,这样后面如果要修改也比较方便

Clone this wiki locally