私は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
を実行しようとすると、明らかに循環依存性を示すエラーが表示されます(これはかなり明白です)。ガイドに従うときに間違いを犯したのですか、またはガイドが間違っていますか?これを正しいものにするにはどうすればいいですか?
ありがとうございます。
EDIT:トレースバック
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