Я делаю учебный курс по колбе введите описание ссылки здесь
Я устанавливаю Flask-SQLAlchemy в виртуальной среде.Я устанавливаю Flask-Migrate: pip install 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 import User и получите ошибку:
(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>
Что я делаю не так?Помощь