Flask-SQLALchemy und eine vorhandene MS Access Datenbank verbinden
Verfasst: Dienstag 4. Januar 2022, 19:20
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:
Ich bekomme es nur nicht hin, das ganze mit Flask-SQLAlchemy zum laufen zu bekommen. Mein Versuch sah so aus:
Oder gibt es eine Möglichkeit, hier wie oben die engine zu setzen und an SQLAlchemy zu übergeben?
Danke für eure Hilfe
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)
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)
Danke für eure Hilfe
