ich frage mich gerade, wie ich am besten meine Datenbankverbindungen in Bottle herstellen soll. Ich will eine Verbindung zu einer Postgresql Datenbank herstellen und dazu psycopg nutzen, die WSGI app soll Bottle sein. Das ganze läuft unter Apache mpm/worker. Mir stellt sich hier die Frage, was am besten hinsichtlich des Verbindungsaufbaus und -wiederverwertung ist.
Folgende Dinge habe ich herausgefunden:
- Das Bottle-Tutorial baut wohl in jeder Route eine neue Verbindung auf, hinsichtlich der Wiederverwendung der (teuren) Verbindung erscheint mir das erst einmal nicht sonderlich optimal.
- Bottles SQLite Plugin ist da wohl etwas eleganter. Es wird ein Connection Objekt einmalig erzeugt und automatisch in die Route eingefügt.
- Es gibt natürlich auch noch SqlAlchemy. Aber eigentlich möchte ich kein ORM nutzen, und es nur wegen des Connection Poolings zu installieren und wegen des vorhandenen Plugins für Bottle erscheint mir auch etwas Overkill für meine Zwecke, auch wenn es vergleichbar einfach wäre.
Code: Alles auswählen
import bottle
import psycopg2
app = bottle.Bottle()
conn = psycopg2.connect("dbname=test user=postgres")
@app.route('/')
def index():
cur = conn.cursor()
cur.execute("CREATE TABLE test (id serial PRIMARY KEY, num integer, data varchar);")
# usw.