Flask-SQLALchemy und eine vorhandene MS Access Datenbank verbinden

Django, Flask, Bottle, WSGI, CGI…
Antworten
jdon2k
User
Beiträge: 4
Registriert: Sonntag 7. Februar 2021, 13:10

Hallo zusammen,

ich müsste eine bestehende MS Access Datenbank in eine Flask Application einbinden, leider habe ich bisher nichts funktionierendes gefunden und hoffe hier auf Hilfe.

Was ich vor habe würde mit SQLAlchemy und sqlalchemy-access so funktionieren:

Code: Alles auswählen

from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy.orm import sessionmaker
import urllib

database = r"C:\Users\user\Desktop\test\test.accdb"

connection_string = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
    fr"DBQ={database};"
    r"ExtendedAnsiSQL=1;"
)

connection_uri = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"
engine = create_engine(connection_uri)

metadata = MetaData(engine)

Session = sessionmaker(bind=engine)
session = Session()

table = Table('test', metadata, autoload=True)
test = session.query(table).all()
print(test)
Ich bekomme es nur nicht hin, das ganze mit Flask-SQLAlchemy zum laufen zu bekommen. Mein Versuch sah so aus:

Code: Alles auswählen

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import urllib

app = Flask(__name__)

database = r"C:\Users\user\Desktop\test\test.accdb"

connection_string = (
    r"DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};"
    fr"DBQ={database};"
    r"ExtendedAnsiSQL=1;"
)

connection_uri = f"access+pyodbc:///?odbc_connect={urllib.parse.quote_plus(connection_string)}"

app.config['SQLALCHEMY_DATABASE_URI'] = connection_uri

db = SQLAlchemy()

table = db.Table('test', db.metadata, autoload=True, autoload_with=db.engine)
test = db.session.query(table).all()
print(test)
Oder gibt es eine Möglichkeit, hier wie oben die engine zu setzen und an SQLAlchemy zu übergeben?

Danke für eure Hilfe :)
Antworten