Maison >développement back-end >Tutoriel Python >Résumé de la façon dont Python se connecte à MySQL

Résumé de la façon dont Python se connecte à MySQL

php中世界最好的语言
php中世界最好的语言original
2018-04-09 16:01:491900parcourir

Cette fois, je vais vous apporter un résumé de la façon dont Python se connecte à MySQL. Quelles sont les précautions pour que Python se connecte à MySQL. Voici des cas pratiques, jetons un coup d'œil.

Bien que de nombreuses bases de données NoSQL soient devenues populaires ces dernières années, les bases de données relationnelles comme MySQL restent l'une des bases de données les plus répandues sur Internet. Tous ceux qui apprennent Python doivent en tirer une leçon. vous effectuez de l'analyse de données, de l'exploration Web, du développement Web ou de l'apprentissage automatique, vous êtes indissociable de la gestion des bases de données, et MySQL est la base de données la plus populaire. Cet article présente les opérations Python. Il existe plusieurs méthodes de MySQL que vous pouvez choisir raisonnablement en fonction. à 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 s'installe directement en téléchargeant le fichier exe, et le compte public répond "gagner" 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.

En raison du délabrement de MySQL-python, sa version Fork mysqlclient est apparue plus tard, qui est entièrement compatible avec MySQLdb et prend en charge Python3.x. Il s'agit d'un outil dépendant de Django ORM If. vous souhaitez utiliser du SQL natif pour faire fonctionner la base de données, alors 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 le site Web 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

PyMySQL est un pilote implémenté en Python pur et est plus rapide. que Au lieu de MySQLdb, la plus grande fonctionnalité est peut-être que sa méthode d'installation n'est pas si lourde et qu'elle est également compatible avec MySQL-python

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

Un exemple

import pymysql
conn = pymysql.connect(host='127.0.0.1', user='root', passwd="xxx", db='mysql')
cur = conn.cursor()
cur.execute("SELECT Host,User FROM user")
for r in cur:
  print(r)
cur.close()
conn.close()

4 , peewee

Le processus d'écriture de SQL natif est très lourd, le code est répété et il n'y a pas de réflexion orientée objet Alors beaucoup. Les packages wrapper et les frameworks ORM sont nés. ORM est Python Une relation de mappage entre les objets et les tables relationnelles de base de données Avec ORM, vous n'avez plus besoin d'écrire des instructions 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.

pip install peewee

Un exemple

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

Documentation officielle : http://docs.peewee-orm.com/en/latest/peewee/installation.html

5. SQLAlchemy

Si vous souhaitez trouver un outil qui prend en charge à la fois SQL natif et ORM, alors SQLAlchemy est le meilleur choix, ce qui est très proche du framework Hibernate en Java.

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy_declarative import Address, Base, Person
class Address(Base):
  tablename = 'address'
  id = Column(Integer, primary_key=True)
  street_name = Column(String(250))
engine = create_engine('sqlite:///sqlalchemy_example.db')
Base.metadata.bind = engine
DBSession = sessionmaker(bind=engine)
session = DBSession()
# Insert a Person in the person table
new_person = Person(name='new person')
session.add(new_person)
session.commit()

Je pense que vous maîtrisez la méthode après avoir lu le cas dans cet article. Pour des informations plus intéressantes, veuillez prêter attention aux autres articles connexes sur le site Web chinois de php !

Lecture recommandée :

Comment attribuer des valeurs uniformes aux éléments d'un tableau dans numpy

Comment multiplier des tableaux numpy et matrices Utiliser

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