- sql_abstract
.venv - app< /p>
_init_.py - database.py
- models.py
- routes.py
config.py
[*]run.py
_init_.py
Код: Выделить всё
from flask import Flask
def create_app():
app = Flask(__name__)
app.config.from_object('config')
from app.routes import register_routes
register_routes(app)
return app
Код: Выделить всё
from sqlalchemy import create_engine, MetaData, Table
from config import conf
engine=create_engine(conf)
metadata = MetaData(bind=engine)
Код: Выделить всё
from sqlalchemy import Table
from app.database import metadata
basic = Table('tblBasic', metadata, autoload=True)
Код: Выделить всё
from app.models import basic
def register_routes(app):
@app.route('/')
def index():
res= basic.select(basic.c.name == "John").execute().first()
return res
Код: Выделить всё
#get the app from the app folder's init.py
from app import create_app
flask_app=create_app()
if __name__ == '__main__':
flask_app.run()
Код: Выделить всё
File "c:\...\app\database.py", line 5, in
metadata = MetaData(bind=engine)
^^^^^^^^^^^^^^^^^^^^^
TypeError: MetaData.__init__() got an unexpected keyword argument 'bind'
Я пробовал импортировать из sqlalchemy.schema, думая, что могу импортировали другой класс с тем же именем, но это не сработало.
Я также попробовал использовать Metadata.reflect(bind=engine), как в этом примере, в результате чего строка 5 файла data.py стала такой:
Код: Выделить всё
metadata = MetaData().reflect(bind=engine)
Код: Выделить всё
basic=metadata.tables["tblBasic"]
Кто-нибудь знает, что вызывает эту ошибку и как ее исправить? Я в растерянности.
Подробнее здесь: https://stackoverflow.com/questions/790 ... argument-b