根据starUML文档产生flask专案的代码
Project description
mwgencode
===============
maxwin 团队产生工程代码的工具,uml 建模工具为starUML,工程代码包括: swagger,controller,
modules,tests code,seeds code,dockerfile,babel.cfg,uwsgi file等
maxwin 开发框架使用的 lib
--------------------------
1. 工具 `mwutils <https://bitbucket.org/maxwin-inc/mwutils/src>`_
2. 认证检查 `mwauth <https://bitbucket.org/maxwin-inc/auth/src>`_
3. 确定权限 `mwpermission <https://bitbucket.org/maxwin-inc/mwpermission/src>`_
4. 通用服务SDK `mwsdk <https://bitbucket.org/maxwin-inc/mwsdk/src>`_
5. aiohttp多语言 `mw-aiohttp-babel <https://bitbucket.org/maxwin-inc/mw-aiohttp-babel/src>`_
6. aiohttp认证检查和确权 `mw-aiohttp-security <https://bitbucket.org/maxwin-inc/mw-aiohttp-security/src>`_
7. aiohttpsession `mw-aiohttp-session <https://bitbucket.org/maxwin-inc/mw-aiohttp-session/src>`_
8. 认证服务 需要kong和consul,支持jwt 和session 认证
9. 确权服务 需要kong和consul
.. _gencode:
生成工程代码的方法
---------------------------
1. 创建工程目录,如:order_system
2. cd order_system
3. 进入cmd,在cmd 输入 ::
gencode gsp
提示如下 ::
gen code success!
则表示创建专案成功
4. 在pycharm中打开 order_system
5. 用 `staruml2 <http://staruml.io/download>`_ 打开(暂时不支持starUML v3) ./docs/oder_system.mdj,修改model( `建模帮助手册 <https://docs.qq.com/doc/DQkZSaUtvWXpMU1lh>`_)
6. 在python中执行 gen_code_run.py,则可产生完整的flask专案文件
工程文件架构说明
--------------------------
> 目录app,为项目
- api 目录编写 swagger control 代码
- __init__.py 创建 flask app
- models.py 物件模型代码,企业物件的规则在此添加
- models_base.py 企业物件代码,由工具自动产生,无需手工维护
- unitls 增加一些工具代码
> docs 保存uml module 文件,mdj 文件为starUML v2的文件
> migrations 数据迁移文件,工具自动产生,不需要手工维护
> swagger 为swagger file 目录,工具自动产生,不需要手工维护
> tests 单元测试代码,每次增加api时,均会产生测试模板文件
> seeds 为初始化数据的代码,可视需求增减
> root 目录下的文件说明:
- config.py flask 的config 文件,包括 TestingConfig(单元测试用的config),DevelopmentConfig(开发模式下用的config),ProductionConfig(生产模式下用的config)
- docker 相关文件,docker-compose-dev.yaml(docker compose 样本,生产环境下改名成 docker-compose.yaml即可),docker-compose.yaml(本地测试文件,不会上传git),Dockerfile
- gen_code_run.py 由工具初始化专案时产生,用于产生完整的专案代码 或 每次更新module后,重新生成专案代码
- run.py 开发环境下的run 单元, 包含 consul 和 kong 的注册
- uwsgi_run.py 生产环境下的run 单元,包含 consul 和 kong 的注册,在docker 中执行
- seed_run.py 产生系统默认数据,比如权限资料
- migrate_run.sh变更模型后,执行该文件 升级资料库,仅限开发环境
- run-dev.sh 为run.sh的模板文件
- run.sh 直接开启docker
:备注:
1. 其中 要产生 tests 和seeds 目录,需要把test和seed 两个参数设为True,如:gen_code(include_test=True,include_seeds=True)
2. 具体见 **readme.md**
数据迁移
--------------------
支持对开发环境下的sqlite资料的数据迁移,不建议在生产环境中执行,避免人工失误,导致损坏资料
1. install or upgrade ::
pip install --upgrade Flask-Migrate
2. 指定Flask app
- linux 下 ::
export FLASK_APP=migrate_run.py
- windows 下 ::
set FLASK_APP=migrate_run.py
3. 初始化 ::
flask db init
4. 产生迁移语句 ::
flask db migrate
5. 执行升级资料库 ::
flask db upgrade
* 可直接执行migrate_run.bat or migrate_run.sh 升级资料库
单元测试
------------------------
继承tests下的test_base.py的 BasicTestCase
定义test 开头的单元方法,编写测试代码即可
> 代码样例
.. code-block:: python
from .test_base import BasicTestCase
from app.models import *
from app import db
class Testexp(BasicTestCase):
# 测试model
def test_data1(self):
cet = Cacl_exp_type()
cet.code = 'cet001'
cet.description = 'cet_des001'
db.session.add(cet)
db.session.commit()
cet = Cacl_exp_type.query.first()
self.assertEqual(cet.code,'cet001')
# 测试方法
def test_health(self):
response = self.client.get(self.url_for('health'))
self.assertTrue(response.status_code, 200)
> 执行单元测试 ::
cd tests
python run.py
升级旧专案的方法
-------------------------------
> 如果不是由本工具产生的专案,可 参照生成代码的方法( gencode_)
> 如果是该工具产生旧代码,可先备份代码,删除工具之前产生的代码(保留gen_code_run.py和app 目录下的除__init__.py的代码)并重现运行gen_code_run.py产生框架
Changes
=======
0.6.13(2018-11-27)
------------------
- 支持产生写kafka 代码
0.6.12(2018-11-27)
------------------
- 修正 描述中 包含" 导致swagger错误的问题
0.6.10(2018-11-07)
------------------
- 升级mwutils,mw-aiohttp-security 开发包
0.6.6(2018-11-06)
------------------
- 升级mw-aiohttp-session,mw-aiohttp-security 开发包
0.6.4(2018-10-31)
------------------
- 升级mwsdk 开发包
0.6.2(2018-10-31)
------------------
- 解决非unicode中文环境下不能安装的问题
0.6.1(2018-10-30)
------------------
- 修正安装包错误
0.6.0(2018-10-30)
------------------
- 增加readme
Platform: UNKNOWN
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mwgencode-0.6.18.tar.gz
(78.0 kB
view hashes)