Добрый день!
Есть таблица:
Есть сервис на фласке, в котором пытаюсь получать данные из этой таблицы (не рабочий вариант):
Получаю ошибку:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: Presentation
НО! Работает такой вариант:
Следовательно, оно не работает именно из класса. Я пробовал создавать метод вне класса, инициализировать в нем Presentation и отдавать на выход. Если вызывать данный метод из класса - результат аналогичен, ошибка. Если вызывать из стартовой точки __name__=="__main__" - оно работает.
В чем может быть причина? Сама таблица существует, прикладываю скриншот

Окружение:
1. Windows 11
2. Python 3.10.1
Есть таблица:
Код:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///main.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class Presentation(db.Model):
__tablename__ = "Presentation"
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String, nullable = False)
description = db.Column(db.String)
descriptionTitle = db.Column(db.String, nullable = False)
firstImagePath = db.Column(db.String, nullable = False)
secondImagePath = db.Column(db.String, nullable = False)
thirdImagePath = db.Column(db.String, nullable = False)
fourthImagePath = db.Column(db.String, nullable = False)
fifthImagePath = db.Column(db.String, nullable = False)
sixthImagePath = db.Column(db.String, nullable = False)
seventhImagePath = db.Column(db.String, nullable = False)
eightImagePath = db.Column(db.String, nullable = False)
mainImagePath = db.Column(db.String, nullable = False)
active = db.Column(db.Boolean, nullable = False)
Есть сервис на фласке, в котором пытаюсь получать данные из этой таблицы (не рабочий вариант):
Код:
from flask import Flask
from flask_restful import Api, Resource
from flask_sqlalchemy import SQLAlchemy
from Models import db, Presentation
app = Flask(__name__)
api = Api(app)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
class DatabaseService(Resource):
@app.route('/getPresentationById/<id>', methods=['GET'])
def getPresentationById(id):
presentation = Presentation()
presentation.query.all()
api.add_resource(DatabaseService)
if __name__ == "__main__":
db = SQLAlchemy()
db.init_app(app)
app.run(host='127.0.0.1', port=80, debug=True)
Получаю ошибку:
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: Presentation
НО! Работает такой вариант:
Код:
from Models import Presentation
if __name__ == "__main__":
presentation = Presentation()
print(presentation.query.all()) #[<Presentation 1>]
Следовательно, оно не работает именно из класса. Я пробовал создавать метод вне класса, инициализировать в нем Presentation и отдавать на выход. Если вызывать данный метод из класса - результат аналогичен, ошибка. Если вызывать из стартовой точки __name__=="__main__" - оно работает.
В чем может быть причина? Сама таблица существует, прикладываю скриншот

Окружение:
1. Windows 11
2. Python 3.10.1
Package Version
---------------- -------
aniso8601 9.0.1
click 8.0.3
colorama 0.4.4
Flask 2.0.2
Flask-Login 0.5.0
Flask-RESTful 0.3.9
Flask-SQLAlchemy 2.5.1
greenlet 1.1.2
itsdangerous 2.0.1
Jinja2 3.0.3
MarkupSafe 2.0.1
pip 21.2.4
psycopg2 2.9.3
pytz 2021.3
setuptools 58.1.0
six 1.16.0
SQLAlchemy 1.4.29
Werkzeug 2.0.2
---------------- -------
aniso8601 9.0.1
click 8.0.3
colorama 0.4.4
Flask 2.0.2
Flask-Login 0.5.0
Flask-RESTful 0.3.9
Flask-SQLAlchemy 2.5.1
greenlet 1.1.2
itsdangerous 2.0.1
Jinja2 3.0.3
MarkupSafe 2.0.1
pip 21.2.4
psycopg2 2.9.3
pytz 2021.3
setuptools 58.1.0
six 1.16.0
SQLAlchemy 1.4.29
Werkzeug 2.0.2