Flask项目中app与model拆分

2020-06-11  本文已影响0人  Martain

前言

Flask这个轻量级的web微框架经一段时间了,基本上都是来的项目比较小,需求比较简单或者说时间比较赶的时候,Flask基本成了我的第一选择了,因为搭建一个Flask的项目是非常容易的,相对于Django来说,Flask更加容易给初学者接受,比如一个最小的Flask应用:

from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
    return 'Hello, World!

这样就已经完成了一个简单的接口了,访问 域名+/ 就可以获得字符串 Hello,World了。

Flask 可以很容易的部署一套api系统,但是,很多时候都把model以及一些route都写在一个文件当中,当项目需求比较简单的时候,写在一个文件里面也足够了,也方便维护,但是后期如果业务扩展,都写在一个文件里面的话就容易变的臃肿难以维护了,对于MVC架构来所,route文件可以使用Flask的蓝图来拆分,但是如果使用orm(SQLAlchemy)的话,数据库的model就全部挤在了app.py中,本篇文章也是记录了如何将model和app拆分开来。

基本环境

开始拆分

因为SQLAlchem需要与Flask做绑定,而Model也是需要和SQLAlchemy做绑定,为了解决循环引用,我们可以单独创建一个dbs.py来维护数据库实例,然后model和app分别引用它即可。

不同文件方式

不同模块方式

总结

这里也没啥总结的,总结的话就是虽然只是几个很简单的方式,但是在尝试过程中也是遇到了许多问题,具体分为两个问题:引用问题flask mysql连接串问题

上一篇 下一篇

猜你喜欢

热点阅读