Ошибка при создании БД на Python Flask

Сразу говорю я новичок и в программировании полный пень, могу сразу что то не понять. У меня есть основной код который я по гайдам делал в VS Code. Сейчас я пытаюсь создать базу данных, дабы наконец создать простенькую функцию написания статей и регистрации.

from flask import Flask, render_template, url_for
from flask_sqlalchemy import SQLAlchemy
from datetime import datetime

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///StationComic.db'
db = SQLAlchemy(app)


class Users(db.Model):
    id = db.Column(db.Integer, primary_key=True)    
    email = db.Column(db.String(50), unique=True)
    psw = db.Column(db.String(50), nullable=False)
    UserDate = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return f"<users {self.id}>"
    

class Profiles(db.Model):
    id = db.Column(db.Integer, primary_key=True)  
    nickname = db.Column(db.String(100), nullable=False)
    realName = db.Column(db.String(100), nullable=False)
    old = db.Column(db.Integer, nullable=False) 
    UserId = db.Column(db.Integer, db.ForeignKey('users.id'))


class article(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    intro = db.Column(db.String(300), nullable=False)
    text = db.Column(db.Text, nullable=False)
    date = db.Column(db.DateTime, default=datetime.utcnow)

    def __repr__(self):
        return '<article %r>' % self.id


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


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


@app.route('/Registration')
def regist():
    return render_template("registration.html")


@app.route('/user/<string:name>/<int:id>')
def user(name, id):
    return "User page: " + name + " - " +  str(id)

if __name__ == "__main__":
    with app.app_context():
        db.create_all()
    app.run(debug=True)

После его написании я ввожу в консоли: Python, from app import db и db.create_all(). Но у меня всё время вылазит ошибка и не удаётся создать БД. У меня вылазит список ошибок.

 Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\User\Documents\test\StationUniversum\venv\Lib\site-packages\flask_sqlalchemy\extension.py", line 900, in create_all
    self._call_for_binds(bind_key, "create_all")
  File "C:\Users\User\Documents\test\StationUniversum\venv\Lib\site-packages\flask_sqlalchemy\extension.py", line 871, in _call_for_binds
    engine = self.engines[key]
             ^^^^^^^^^^^^
  File "C:\Users\User\Documents\test\StationUniversum\venv\Lib\site-packages\flask_sqlalchemy\extension.py", line 687, in engines
    app = current_app._get_current_object()  # type: ignore[attr-defined]
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\User\Documents\test\StationUniversum\venv\Lib\site-packages\werkzeug\local.py", line 508, in _get_current_object
    raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of application context.

This typically means that you attempted to use functionality that needed
the current application. To solve this, set up an application context
with app.app_context(). See the documentation for more information.

Ответы (1 шт):

Автор решения: Bor-is-luv

Стоит попробовать вот так

from app import db, app

with app.app_context():
    db.create_all()

Тогда, судя по traceback, ошибка уйдёт. Но обращаю внимание, аналогичный код выполняется на старте приложения, поэтому, возможно, создавать бд из консоли не нужно

→ Ссылка