Ich möchte MySQL mit Python verwenden.
Als ich nach einem O / R-Mapper für Python gesucht habe, scheint ** SQLAlchemy ** berühmt zu sein, also werde ich es dieses Mal verwenden.
Das offizielle Tutorial ist auf Englisch, aber es gab einen Blog, der es sorgfältig auf Japanisch erklärte, also werde ich fortfahren, während ich mich auch darauf beziehe.
Offizielles Tutorial http://docs.sqlalchemy.org/en/latest/orm/tutorial.html
Überlegungen zum Symfoware-Blog> Verwendung von SQLAlchemy 1 Zuordnung einer einzelnen Tabelle und Hinzufügen von Daten http://symfoware.blog68.fc2.com/blog-entry-1373.html
$ pip install sqlalchemy
$ pip install PyMySQL
Als ich den Code basierend auf dem Beispiel von "Introduction Python 3 (O'Reilly)" schrieb, war ich zunächst süchtig nach verschiedenen Dingen, also werde ich eine Notiz schreiben.
sqlalchemy_test.py
import sqlalchemy as sa
url = 'mysql+pymysql://root:@localhost/test_db?charset=utf8'
engine = sa.create_engine(url, echo=True)
engine.execute('DROP TABLE zoo')
engine.execute('CREATE TABLE zoo (critter VARCHAR(20) PRIMARY KEY, count INT, damages FLOAT)')
#In der SQL-Anweisung "?Kann nicht verwendet werden, also stattdessen%s ”wird verwendet
ins = "INSERT INTO zoo (critter, count, damages) VALUES (%s, %s, %s)"
engine.execute(ins, "Ente", 10, 0.0)
engine.execute(ins, "Bär", 2, 1000.0)
engine.execute(ins, "Wir", 1, 2000.0)
rows = engine.execute('SELECT * FROM zoo')
for row in rows:
print(row)
Sie können auch Japanisch verwenden, indem Sie der Argument-URL der Funktion create_engine "? Charset = utf8" hinzufügen.
[Fehlermeldung]
UnicodeEncodeError: 'latin-1' codec can't encode characters in position 51-53: ordinal not in range(256)
Sie können "?" In SQL-Anweisungen wie "VALUES (?,?,?)" Nicht verwenden. Verwenden Sie stattdessen "% s". (Es scheint ein Fehler in SQLAlchemy zu sein.)
[Fehlermeldung]
not all arguments converted during string formatting
Der Name der Skriptdatei sollte nicht "sqlalchemy.py" sein. Außerdem darf sich in dem Verzeichnis, in dem sich die Skriptdatei befindet, keine Datei mit dem Namen "sqlalchemy.py" befinden.
[Fehlermeldung]
module 'sqlalchemy' has no attribute 'create_engine'
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Recommended Posts