sqlite3
accepte qmark et nommé comme formats de liaison de paramètres, mais n'accepte pas les formats et les formats pyformat définis dans PEP249 [^ 1] [^ 2] [^ 3]. C'est le module qui les accepte.
Les versions de Python ont été testées avec 2.7.8 et 3.4.1.
pip install sqlite3paramstyle
Il se lie à la partie de % s
.
conn = sqlite3paramstyle.connect(":memory:")
cur = conn.cursor()
cur.execute("select %s, %s", ("foo", "bar"))
cur.fetchall() # [("foo", "bar")]
Il prend également en charge le format étendu Python.
cur.execute("select %(who)s, %(age)s", {"who": "John", "age": 20})
cur.fetchall() # [("John", 20)]$
J'espère que cela aide quelqu'un quelque part: les bières:
J'étais censé maintenir le code Python avec presque aucun code de test et ajouter des tests tranquillement, mais j'ai trouvé du code Python qui utilise psycopg2
live. Je voulais vraiment utiliser SQL Alchemy
, mais c'était une phase difficile pour changer les modules dépendants, j'ai donc décidé de procéder dans le sens de ne pas changer autant que possible.
Je ne voulais pas garder le processus Postgresql en cours d'exécution sur le serveur CI tout le temps, et la connexion à la base de données était sous une forme qui pouvait être transmise de l'extérieur, alors lors des tests, j'ai essayé de passer la connexion de sqlite3
et de l'exécuter.
Cependant, les styles de paramètres acceptés par «psycopg2» sont le format et les formats pyformat décrits ci-dessus, qui sont complètement incompatibles avec «sqlite3».
J'ai trouvé qmarkpg qui étend psycopg2
pour accepter les styles qmark, alors pourquoi ne pas écrire un module qui fonctionne dans la direction opposée? Dès que j'ai pensé.
Heureux d'être un auteur PyPI: smiley_cat: Wow Wow
Recommended Posts