Maison  >  Article  >  développement back-end  >  Explication détaillée de plusieurs façons de se connecter à MySQL en utilisant Python_python

Explication détaillée de plusieurs façons de se connecter à MySQL en utilisant Python_python

不言
不言original
2018-04-04 16:24:041488parcourir

Cet article présente principalement plusieurs façons de se connecter à MySQL à l'aide de Python. Vous pouvez choisir une méthode de connexion raisonnable en fonction de la situation réelle. Les amis dans le besoin peuvent s'y référer

Bien que de nombreuses bases de données NoSQL soient devenues populaires. Ces dernières années, c'est génial, mais les bases de données relationnelles comme MySQL sont toujours l'une des bases de données les plus répandues sur Internet. Tous ceux qui apprennent Python doivent bien apprendre une base de données, que vous fassiez de l'analyse de données, des robots d'exploration Web, du développement Web ou de l'apprentissage automatique. En étudiant, vous ne pouvez pas vous passer de bases de données, et MySQL est la base de données la plus populaire. Cet article présente plusieurs façons d'utiliser MySQL en Python. Vous pouvez choisir raisonnablement en fonction de la situation réelle au cours du processus de développement réel.

1. MySQL-python

MySQL-python, également appelé MySQLdb, est le pilote le plus populaire pour que Python se connecte à MySQL, et il est également utilisé par de nombreux frameworks développés basés sur cette bibliothèque. Malheureusement, il ne prend en charge que Python2. Il est fondamentalement obsolète et remplacé par ses dérivés.

# 前置条件
sudo apt-get install python-dev libmysqlclient-dev # Ubuntu
sudo yum install python-devel mysql-devel # Red Hat / CentOS
# 安装
pip install MySQL-python

Windows peut être installé directement en téléchargeant le fichier exe. Répondez « win » au compte officiel pour obtenir le lien de téléchargement

#!/usr/bin/python
import MySQLdb
db = MySQLdb.connect(
   host="localhost",  # 主机名
   user="john",     # 用户名
   passwd="megajonhy", # 密码
   db="jonhydb")    # 数据库名称
# 查询前,必须先获取游标
cur = db.cursor()
# 执行的都是原生SQL语句
cur.execute("SELECT * FROM YOUR_TABLE_NAME")
for row in cur.fetchall():
  print(row[0])
db.close()

2. mysqlclient

En raison du délabrement de MySQL-python, sa version Fork mysqlclient est apparu plus tard, qui est entièrement compatible avec MySQLdb , qui prend également en charge Python3.x et est un outil dépendant de Django ORM. Si vous souhaitez utiliser du SQL natif pour faire fonctionner la base de données, ce pilote est recommandé. La méthode d'installation est la même que celle de MySQLdb. Windows peut trouver la version correspondante du téléchargement et de l'installation du package whl sur https://www.lfd.uci.edu/~gohlke/pythonlibs/#mysqlclient.

# Windows安装
pip install some-package.whl
# linux 前置条件
sudo apt-get install python3-dev # debian / Ubuntu
sudo yum install python3-devel # Red Hat / CentOS
brew install mysql-connector-c # macOS (Homebrew)
pip install mysqlclient

3. >PyMySQL est un pilote implémenté en Python pur. Il n'est pas aussi rapide que MySQLdb. Sa plus grande caractéristique est peut-être que sa méthode d'installation n'est pas si lourde. Il est également compatible avec MySQL-python<.>

Un exemple

pip install PyMySQL
# 为了兼容mysqldb,只需要加入
pymysql.install_as_MySQLdb()

4. 🎜>
import pymysql
conn = pymysql.connect(host=&#39;127.0.0.1&#39;, user=&#39;root&#39;, passwd="xxx", db=&#39;mysql&#39;)
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
  print(r)
cur.close()
conn.close()
Le processus d'écriture de SQL natif est très lourd, avec du code répétitif et aucune réflexion orientée objet. Ensuite, de nombreux packages wrapper et frameworks ORM sont nés. ORM est une relation de mappage entre les objets Python et les tables relationnelles de base de données. , vous n'avez plus besoin d'écrire une instruction SQL. Il améliore la vitesse d'écriture du code et est compatible avec une variété de systèmes de bases de données, tels que sqlite, mysql et postgresql. Le prix à payer peut être une certaine perte de performances. Si vous connaissez l'ORM fourni avec Django, alors le coût d'apprentissage de peewee est presque nul. Il s'agit du framework ORM le plus populaire en Python.

Un exemple

pip install peeweeDocumentation officielle : http://docs.peewee-orm .com/en/latest/peewee/installation.html

5. SQLAlchemy

import peewee
from peewee import *
db = MySQLDatabase(&#39;jonhydb&#39;, user=&#39;john&#39;, passwd=&#39;megajonhy&#39;)
class Book(peewee.Model):
  author = peewee.CharField()
  title = peewee.TextField()
  class Meta:
    database = db
Book.create_table()
book = Book(author="me", title=&#39;Peewee is cool&#39;)
book.save()
for book in Book.filter(author="me"):
  print(book.title)

Si vous souhaitez trouver un logiciel prenant en charge le SQL natif et des outils prenant en charge ORM, alors SQLAlchemy est le meilleur choix, il est très proche du framework Hibernate en Java.

Maintenant que vous avez presque compris les avantages et les inconvénients de ces pilotes de base de données, vous pouvez en choisir un pour l'étudier systématiquement et ensuite cela a été appliqué au projet. Je vous souhaite une bonne étude. Si vous ne comprenez pas, vous pouvez me consulter.

Recommandations associées :

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
  __tablename__ = &#39;address&#39;
  id = Column(Integer, primary_key=True)
  street_name = Column(String(250))
engine = create_engine(&#39;sqlite:///sqlalchemy_example.db&#39;)
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name=&#39;new person&#39;)
session.add(new_person)
session.commit()
Un exemple de tutoriel de connexion de Python à SQLite

Explication détaillée d'un exemple de connexion de Python à SQLite impala


Comment se connecter et faire fonctionner Mongodb en utilisant Python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn