[PYTHON] Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)

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

Betriebsumgebung

Vorbereitungen

Installieren Sie SQLAlchemy

$ pip install sqlalchemy

Installieren Sie PyMySQL (MySQL-Treiber) (Seien Sie vorsichtig bei der Auswahl, da einige DB-Treiber noch nicht mit der Python 3.x-Serie kompatibel sind!)

$ pip install PyMySQL

Versuchen Sie, Code zu schreiben

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)

Ich möchte Japanisch verwenden

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)


"?" Kann nicht in SQL-Anweisungen verwendet werden

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.

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

Versuchen Sie es mit SQLAlchemy + MySQL (Teil 1)
Versuchen Sie es mit SQLAlchemy + MySQL (Teil 2)
Versuchen Sie es mit Pillow auf iPython (Teil 1)
Versuchen Sie es mit Pillow auf iPython (Teil 2)
Versuchen Sie es mit Pillow auf iPython (Teil 3).
Stellen Sie mit Flask SQL Alchemy eine Verbindung zu MySQL her
Versuchen Sie es mit Tkinter
Versuchen Sie es mit Docker-Py
Versuchen Sie es mit PDFMiner
Versuchen Sie es mit Geopandas
Versuchen Sie es mit Selen
Versuchen Sie es mit scipy
Versuchen Sie es mit pandas.DataFrame
Versuchen Sie es mit Django-Swiftbrowser
Versuchen Sie es mit matplotlib
Versuchen Sie es mit tf.metrics
Versuchen Sie es mit PyODE
Versuchen Sie es mit dem Python-Webframework Tornado Part 1
Versuchen Sie es mit dem Python-Webframework Tornado Part 2
Versuchen Sie es mit virtualenv (virtualenvwrapper)
[Azure] Versuchen Sie, Azure-Funktionen zu verwenden
Versuchen Sie es jetzt mit virtualenv
Versuchen Sie es mit W & B.
Versuchen Sie es mit Django templates.html
[Kaggle] Versuchen Sie es mit LGBM
Versuchen Sie es mit dem Feed-Parser von Python.
Versuchen Sie es mit Pythons Tkinter
Versuchen Sie es mit Tweepy [Python2.7]
Versuchen Sie es mit Pytorchs collate_fn
Versuchen Sie, PythonTex mit Texpad zu verwenden.
Versuchen Sie es mit normaler Linux-Programmierung Teil 7
[Python] Versuchen Sie, Tkinters Leinwand zu verwenden
Versuchen Sie es mit Jupyters Docker-Image
Versuchen Sie es mit Scikit-Learn (1) - K-Clustering nach Durchschnittsmethode
Versuchen Sie die Funktionsoptimierung mit Hyperopt
Versuchen Sie es mit Azure Logic Apps
[Kaggle] Versuchen Sie es mit xg boost
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit OpenCV unter Windows
Versuchen Sie, Jupyter Notebook dynamisch zu verwenden
Versuchen Sie es mit normaler Linux-Programmierung Teil 3
Versuchen Sie, automatisch mit Selen zu twittern.
Versuchen Sie es mit der Twitter-API
Versuchen Sie es mit normaler Linux-Programmierung Teil 4
Versuchen Sie es mit der Vorlagenfunktion von Django
Versuchen Sie es mit der PeeringDB 2.0-API
Versuchen Sie es mit der Entwurfsfunktion von Pelican
Versuchen Sie es mit normaler Linux-Programmierung Teil 6
Versuchen Sie es mit pytest-Overview und Samples-
Versuchen Sie es mit Folium mit Anakonda
Generieren Sie mithilfe von sqlacodegen SQL Alchemy-Tabellendefinitionen von einem vorhandenen MySQL-Server
Versuchen Sie es mit der Admin-API von Janus Gateway
[Statistik] [R] Versuchen Sie, die Teilungspunktregression zu verwenden.
Versuchen Sie es mit Spyder, das in Anaconda enthalten ist
Versuchen Sie es mit Designmustern (Exporter Edition)
Versuchen Sie es mit TensorFlow Part 2
Versuchen Sie es mit LevelDB mit Python (plyvel)
Versuchen Sie, Nagios mit pynag zu konfigurieren
Versuchen Sie es mit ArUco mit Raspberry Pi
Verarbeitung von DB-Tabelleneinfügungen mit sqlalchemy
[Sakura-Mietserver] Versuchen Sie es mit einer Flasche.