[PYTHON] Essayez d'utiliser SQLAlchemy + MySQL (partie 1)

Je veux utiliser MySQL avec Python.

Quand j'ai cherché un mappeur Python O / R, ** SQLAlchemy ** semble être célèbre, donc je vais l'utiliser cette fois.

Le tutoriel officiel est en anglais, mais il y avait un blog qui l'expliquait soigneusement en japonais, je vais donc continuer en faisant référence à cela également.

Tutoriel officiel http://docs.sqlalchemy.org/en/latest/orm/tutorial.html

Considérations sur le blog Symfoware> Comment utiliser SQLAlchemy 1 Mappage d'une table unique et ajout de données http://symfoware.blog68.fc2.com/blog-entry-1373.html

Environnement d'exploitation

Préparation préalable

Installez SQLAlchemy

$ pip install sqlalchemy

Installez PyMySQL (pilote MySQL) (Soyez prudent lors de la sélection car certains pilotes DB ne sont pas encore compatibles avec la série Python 3.x!)

$ pip install PyMySQL

Essayez d'écrire du code

Tout d'abord, quand j'ai écrit le code basé sur l'exemple de "Introduction Python 3 (O'Reilly)", j'étais accro à diverses choses, donc j'écrirai une note.

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)')

#Dans l'instruction SQL "?Ne peut pas être utilisé, donc à la place%s "est utilisé
ins = "INSERT INTO zoo (critter, count, damages) VALUES (%s, %s, %s)"
engine.execute(ins, "canard", 10, 0.0)
engine.execute(ins, "Ours", 2, 1000.0)
engine.execute(ins, "nous", 1, 2000.0)

rows = engine.execute('SELECT * FROM zoo')

for row in rows:
    print(row)

Je veux utiliser le japonais

Vous pouvez également utiliser le japonais en ajoutant "? Charset = utf8" à l'url d'argument de la fonction create_engine.

[Message d'erreur]

UnicodeEncodeError: 'latin-1' codec can't encode characters in position 51-53: ordinal not in range(256)


"?" Ne peut pas être utilisé dans une instruction SQL

Vous ne pouvez pas utiliser "?" Dans les instructions SQL, telles que "VALUES (?,?,?)". Utilisez plutôt "% s". (Cela semble être un bogue dans SQLAlchemy.)

[Message d'erreur]

not all arguments converted during string formatting


Le nom du fichier de script ne doit pas être "sqlalchemy.py"

Le nom du fichier de script ne doit pas être "sqlalchemy.py". De plus, il ne doit pas y avoir de fichier nommé "sqlalchemy.py" dans le répertoire où se trouve le fichier de script.

[Message d'erreur]

module 'sqlalchemy' has no attribute 'create_engine'


Essayez d'utiliser SQLAlchemy + MySQL (Partie 2)

Recommended Posts

Essayez d'utiliser SQLAlchemy + MySQL (partie 1)
Essayez d'utiliser SQLAlchemy + MySQL (partie 2)
Essayez d'utiliser Pillow sur iPython (partie 1)
Essayez d'utiliser Pillow sur iPython (partie 2)
Essayez d'utiliser Pillow sur iPython (partie 3)
Connectez-vous à MySQL à l'aide de Flask SQL Alchemy
Essayez d'utiliser Tkinter
Essayez d'utiliser docker-py
Essayez d'utiliser PDFMiner
Essayez d'utiliser des géopandas
Essayez d'utiliser Selenium
Essayez d'utiliser scipy
Essayez d'utiliser pandas.DataFrame
Essayez d'utiliser django-swiftbrowser
Essayez d'utiliser matplotlib
Essayez d'utiliser tf.metrics
Essayez d'utiliser PyODE
Essayez d'utiliser le framework Web Python Tornado Partie 1
Essayez d'utiliser le framework Web Python Tornado Partie 2
Essayez d'utiliser virtualenv (virtualenvwrapper)
[Azure] Essayez d'utiliser Azure Functions
Essayez d'utiliser virtualenv maintenant
Essayez d'utiliser W & B
Essayez d'utiliser Django templates.html
[Kaggle] Essayez d'utiliser LGBM
Essayez d'utiliser l'analyseur de flux de Python.
Essayez d'utiliser Tkinter de Python
Essayez d'utiliser Tweepy [Python2.7]
Essayez d'utiliser collate_fn de Pytorch
Essayez d'utiliser PythonTex avec Texpad.
Essayez la programmation Linux normale, partie 7
[Python] Essayez d'utiliser le canevas de Tkinter
Essayez d'utiliser l'image Docker de Jupyter
Essayez d'utiliser scikit-learn (1) - Clustering K par méthode moyenne
Essayez l'optimisation des fonctions à l'aide d'Hyperopt
Essayez d'utiliser Azure Logic Apps
[Kaggle] Essayez d'utiliser xg boost
Essayez d'utiliser l'API Twitter
Essayez d'utiliser OpenCV sur Windows
Essayez d'utiliser Jupyter Notebook de manière dynamique
Essayez la programmation Linux normale, partie 3
Essayez de tweeter automatiquement en utilisant Selenium.
Essayez d'utiliser l'API Twitter
Essayez la programmation Linux normale, partie 4
Essayez d'utiliser la fonction de modèle de Django
Essayez d'utiliser l'API PeeringDB 2.0
Essayez d'utiliser la fonction de brouillon de Pelican
Essayez la programmation Linux normale, partie 6
Essayez d'utiliser pytest-Overview and Samples-
Essayez d'utiliser le folium avec anaconda
Générer des définitions de table SQL Alchemy à partir d'un serveur MySQL existant à l'aide de sqlacodegen
Essayez d'utiliser l'API Admin de la passerelle Janus
[Statistiques] [R] Essayez d'utiliser la régression par points de division.
Essayez d'utiliser Spyder inclus dans Anaconda
Essayez d'utiliser des modèles de conception (édition exportateur)
Essayez l'apprentissage en profondeur avec TensorFlow Partie 2
Essayez d'utiliser LevelDB avec Python (plyvel)
Essayez d'utiliser pynag pour configurer Nagios
Essayez d'utiliser ArUco avec Raspberry Pi
Traitement des insertions de table DB à l'aide de sqlalchemy
[Serveur de location Sakura] Essayez d'utiliser flask.