【发布时间】:2020-10-02 10:42:15
【问题描述】:
我的文件夹结构看起来像 - Structure
我正在尝试以模块化方式编写代码,但遇到了循环导入。 我正在研究 ORM 模型和烧瓶中的基本登录/注册用户场景。
我的代码看起来像 -
*app/__init__.py*
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "..."
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
db.create_all()
from app import routes
def get_session():
return db.session()
crud/crud_user.py
from app.model import User
from app import get_session
from flask_sqlalchemy import SQLAlchemy
session = get_session()
def save_user_detail(user: User):
# make use of session here
pass
错误 -
$ python runserver.py
Traceback (most recent call last):
File "runserver.py", line 1, in <module>
from app import app
File "C:\Users\admin\Documents\Projects\Modular\server-side\app\__init__.py", line 13, in <module>
from app import routes
File "C:\Users\admin\Documents\Projects\Modular\server-side\app\routes.py", line 4, in <module>
from crud.crud_user import get_user, save_user_detail
File "C:\Users\admin\Documents\Projects\Modular\server-side\crud\crud_user.py", line 2, in <module>
from app import get_session
ImportError: cannot import name 'get_session' from partially initialized module 'app' (most likely due to a circular import)
【问题讨论】:
标签: python flask flask-sqlalchemy python-import