我正在開發一個Flask應用程序。它還比較小。我只有一個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