社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
分开models目的:为了让代码更加方便的管理
项目代码描述:
models.py
# -*- coding:utf-8 -*-
from app import db
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
from models import Article
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
db.create_all()
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
点击运行项目后报错:
ImportError: cannot import name 'db' from 'app'
问题原因: Flask中的循环引用
解决方法: app引用model本身就是我们需要达到的目的,所有只有将db文件进行分离
# -*- coding:utf-8 -*-
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# -*- coding:utf-8 -*-
from exts import db
class Article(db.Model):
__tablename__ = 'article'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
from flask import Flask
import config
from models import Article
from exts import db
app = Flask(__name__)
app.config.from_object(config)
db.init_app(app)
app.app_context().push()
db.create_all()
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
db此时需要利用另外语句进行初始化
db.init_app(app)
app.app_context().push()
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!