【问题标题】:Failed to find Flask application or factory in module "config" Use "FLASK_APP=config:name to specify one在模块“config”中找不到 Flask 应用程序或工厂使用“FLASK_APP=config:name 指定一个”
【发布时间】:2019-10-09 18:03:48
【问题描述】:

我正在做烧瓶培训课程enter link description here

我在虚拟环境中安装 Flask-SQLAlchemy。 我正在安装 Flask-Migrate: 点安装烧瓶迁移

创建了一个类 config.py:

import os
basedir = os.path.abspath(os.path.dirname(__file__))

class Config(object):
    SECRET_KEY = os.environ.get('SECRET_KEY') or '*********'    
    SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or 'sqlite:///' + os.path.join(basedir, 'app.db')  
    SQLALCHEMY_TRACK_MODIFICATIONS = False

在 models.py 我有两个模型:

from datetime import datetime
from app import db

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(64), index=True, unique=True)
    email = db.Column(db.String(120), index=True, unique=True)
    password_hash = db.Column(db.String(128))
    posts = db.relationship('Post', backref='author', lazy='dynamic')

    def __repr__(self):
        return '<User {}>'.format(self.username)

class Post(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    body = db.Column(db.String(140))
    timestamp = db.Column(db.DateTime, index=True, default=datetime.utcnow)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))

    def __repr__(self):
        return '<Post {}>'.format(self.body)

仅在 testapp.py 中:

from app import app

init.py文件中

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

app = Flask(__name__)
app.config.from_object(Config)
db = SQLAlchemy(app)
migrate = Migrate(app, db)

from app import routes, models

构建我的应用程序:

testapp\
  venv\
  app\
    templates\
        base.html
        index.html
        login.html 
    __init__.py
    routes.py
    forms.py
    models.py    
  testapp.py
  config.py

在 Python 解释器会话中,执行以下操作 从 app.models 导入用户 并得到一个错误:

(venv) C:\Users\User\testapp>python
Python 3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 
64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
 >>> from app.models import User
Traceback (most recent call last):
   File "<stdin>", line 1, in <module>
   File "C:\Users\User\testapp\app\__init__.py", line 4, in <module>
     from config import Config
   File "C:\Users\User\testapp\config.py", line 8
     SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL') or \
                                                                 ^
TabError: inconsistent use of tabs and spaces in indentation
 >>>

为新的配置模块设置环境变量 设置 FLASK_APP=config.py

当我执行命令时:

flask db init

完整的错误日志:

(venv) C:\Users\User\testapp>flask db init
Usage: flask db init [OPTIONS]

Error: Failed to find Flask application or factory in module "config". Use "FLAS
K_APP=config:name to specify one.

(venv) C:\Users\User\testapp>

我做错了什么?帮助

【问题讨论】:

  • 你能发布完整的错误日志吗?
  • 第一个错误是不一致的选项卡错误 i config.py 由于您的代码中定义 sql_database_uri 您不需要 '/' 来定义或条件。没有这个你可以试试跑步吗?
  • 现在只是关于不一致的标签。你能检查一下缩进吗?
  • export FLASK_APP=testapp.pyflask db init之前在cmd中运行这个命令
  • @The Sparks Foundation 的 Tech 非常感谢,它对我有用。我有 Windows,所以我运行了 set FLASK_APP = testapp.py 命令,之后成功创建了迁移存储库。再次感谢。

标签: flask flask-sqlalchemy


【解决方案1】:

在 cmd 中运行此命令

export FLASK_APP=testapp.py

之前

flask db init

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 1970-01-01
    • 2020-09-26
    • 1970-01-01
    • 2017-05-17
    • 1970-01-01
    相关资源
    最近更新 更多