플라스크 응용 프로그램을 개발 중입니다. 그것은 여전히 상대적으로 작습니다. 나는 단지 하나 개의 app.py 파일을 가지고,하지만 난 데이터베이스 마이그레이션을 할 필요가 있기 때문에,이 가이드를 사용하여 3으로 나누어하십시오이있는 한플라스크 순환 의존성
https://realpython.com/blog/python/flask-by-example-part-2-postgres-sqlalchemy-and-alembic/
그러나, 나는 지금 내 응용 프로그램을 실행할 수 없습니다 앱과 모델 사이의 순환 의존성.
app.py :
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask import render_template, request, redirect, url_for
import os
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = os.environ['DB_URL']
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.debug = True
db = SQLAlchemy(app)
from models import User
... routes ...
if __name__ == "__main__":
app.run()
models.py :
from app import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True)
email = db.Column(db.String(120), unique=True)
def __init__(self, username, email):
self.username = username
self.email = email
def __repr__(self):
return self.username
manage.py :
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import app, db
migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
manager.run()
그들은에서 모두 동일한 디렉토리. 서버를 시작하기 위해 python app.py
을 실행하려고하면 순환 의존성을 분명히 보여주는 오류가 발생합니다 (이는 꽤 분명합니다). 가이드에 따라 실수를했거나 가이드가 잘못 되었습니까? 올바른 것으로 리팩토링 할 수있는 방법은 무엇입니까?
고마워요.
편집 : 역 추적
Traceback (most recent call last):
File "app.py", line 14, in <module>
from models import User
File "/../models.py", line 1, in <module>
from app import db
File "/../app.py", line 14, in <module>
from models import User
ImportError: cannot import name User
추적을 게시하십시오. – davidism
추적 코드에 따르면 실제로 표시된 코드는 실제로 오류의 원인이되는 코드가 아닙니다. 작성된 코드는 문제가 없습니다. – davidism