Проблема по базе данных sqlite (Flask)

Рейтинг: 0Ответов: 2Опубликовано: 25.05.2023

У меня та же самая проблема по базе данных sqlite (Flask) и ошибка такая же, когда в консоли пишу

>>> from app import db
>>> db.create_all()

Код:

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:///blog.db'
db = SQLAlchemy(app)

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('/')
def index():
    return render_template('index.html')


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

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

Ответы

▲ 0Принят

Ваша проблема может быть связана с необходимостью импортировать экземпляр объекта **app** из вашего скрипта Flask перед вызовом db.create_all(). Попробуйте добавить эту строку кода перед вызовом db.create_all():

from app import app

Если это не поможет, попробуйте проверить, что путь к вашей базе данных SQLite задан корректно в строке конфигурации app.config['SQLALCHEMY_DATABASE_URI'].

▲ 0

База данных по этому коду все-таки создается, если не писать в консоли указанные команды, а в терминале (тип Command Prompt в PyCharm) набрать: python app.py и запустить : Running on http://127.0.0.1:5000.После этого нужно посмотреть папку instance и там будет файл blog.db.