【问题标题】:flask db init Error: Could not import "app.run"烧瓶数据库初始化错误:无法导入“app.run”
【发布时间】:2019-07-23 19:31:11
【问题描述】:

我正在尝试初始化我的数据库,每次我运行 flask db init 命令时,都会收到该错误。

我不确定为什么,我的 FLASK_APP 和 FLASK_ENV 设置正确。

在此之前,我一直在重新组织项目结构和文件名以更符合烧瓶指南。

运行.py

from app import app

app.run(debug=True)

config.py

import os


basedir = os.path.abspath(os.path.dirname(__file__))
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'app.db')
SQLALCHEMY_TRACK_MODIFICATIONS = True

初始化.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate


app = Flask(__name__)
app.config.from_object('config')
db = SQLAlchemy(app)

migrate = Migrate(app, db)

from app import views, models

db_create.py

from config import SQLALCHEMY_DATABASE_URI
from app import db
import os.path


db.create_all()

models.py

from app import db


class Property(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    address = db.Column(db.String(500), index=True, unique=True)
    start_date = db.Column(db.DateTime)
    duration = db.Column(db.Integer)
    rent = db.Column(db.Float)

views.py

from app import app
from flask import render_template

@app.route('/')
def index():
    return render_template('index.html')


错误:

$烧瓶数据库初始化 用法:flask db init [OPTIONS]

错误:无法导入“app.run”。

编辑:文件夹结构,以便您更好地理解:

config.py
run.py
app/
    __init__.py
    db_create.py
    models.py
    views.py
    static/
    templates/
        index.html
        layout.html

再次补充:问题不在于我的代码运行,而是当我尝试使用flask db init初始化我的数据库时

我在尝试运行时在终端中遇到错误,希望有人能帮助我找出原因然后修复它,感谢阅读:)

【问题讨论】:

  • 您尝试通过from app import app 导入的app.py 文件中是否有app 变量?当我们可以看到完整的回溯时,调用堆栈也很有用。单独的错误几乎没有用。
  • 我在 init.py 中有一个应用程序,更新后您可以看到结构。将尝试获取回溯,但我得到的只是我发布的内容,看看我是否能弄清楚如何获得更多信息——编辑:我拥有的是 dunder init dunder .py 但stackoverflow上的降价使它变得粗体
  • 请编辑您的帖子以添加完整回溯。

标签: python python-3.x flask flask-sqlalchemy


【解决方案1】:

请确保您的工作目录不在您的烧瓶应用app/中。

    flask_app/
        config.py
        run.py
        app/
            __init__.py
            db_create.py
            models.py
            views.py
            static/
            templates/
                index.html
                layout.html

在这种情况下,您的工作目录应该是flask_app/

【讨论】:

  • 用flask_app的根目录重新创建整个东西工作了,谢谢!
猜你喜欢
  • 2012-08-20
  • 1970-01-01
  • 2020-09-23
  • 2020-07-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多