美文网首页
flask web开发,整合jwt,marshmallow,mi

flask web开发,整合jwt,marshmallow,mi

作者: 我叫zhengxianjun | 来源:发表于2020-02-28 00:59 被阅读0次

    今天,有必要总结下flask的web经历。

    这个是工作中,用到的开发web项目的代码结构,python框架,做一个demo,只要填充代码就可以了。代码在后文连接。

    项目代码整合了模块:

    flask_marshmallow,

    flask_jwt_extended,

    flask_migrate,

    flask_sqlalchemy

    一.使用pycharm,新建flask web项目。IDE会直接生成代码结构,但是不是我们想要的,所以要改下代码结构。如下。

    代码结构

    二. 启动流程

    1.在当前根目录下控制台用flask run 命令启动创建app实例,(这个命令是flask内置命令),程序的配置值存储在.env文件中。

    当安装了python-dotenv并使用Flask内置的run命令启动程序时,.env文件的环境变量会被自动设置。

    会一开始找到.env文件,里面是环境变量的值,通过

    from environs import Env

    env = Env()

    env.read_env()

    这个程序模块可以读取.env的文件配置,用来赋值给setting.py文件,

    再通过app.config.from_object(config_object)来配置app,从环境变量加载配置可以方便地在不改动代码的情况下切换配置。这个值可以在.fenv文件中设置,然后通过工厂函数,来进行实例化程序,Flask会自动从环境变量FLASK_APP的值定义的模块中寻找名为create_app()或make_app()的工厂函数,自动调用工厂函数创建程序实例并运行。

    工厂函数一般如下形式:

    '''

    def create_app():

       app = Flask(__name__, instance_relative_config=True,static_folder='../Files')

       app.config.from_object('setting.py')

       register_extensions(app)

       register_blueprint(app)

       return app

    '''

    2. 

    register_extensions(app) 加载扩展模块

    register_blueprint(app) 注册蓝图

    三.

    扩展模块:

    扩展模块

    对应model:

    由于配置文件中有中文,会在使用flask db init 初始化数据库保错

    报错

    flask db init 后生成迁移文件migrations

    迁移文件migrations

    # 由于flask 对表结构改变 如添加字段 和删除字段 没有自动修改的功能 而spring data jpa 是有的

    # 所有用这个来改变表结构和对数据进行迁移

    # 主要命令是 1.flask db init 初始化

    # 2.flask db migrate -m " message" 生成迁移文件

    # 3.flask db upgrade 用来更新数据库 即运行2产生的迁移文件 如果一开始就有迁移文件 可以直接运行这步

    # 以后有修改表model结构 就直接运行2和3

    四.完成

    启动程序

    使用postman测试

    测试

    感觉总算完成了,代码有详细解释,需要可以看看。以后在完善。https://github.com/JUN-ZZ/flask-app代码

    相关文章

      网友评论

          本文标题:flask web开发,整合jwt,marshmallow,mi

          本文链接:https://www.haomeiwen.com/subject/zekqhhtx.html