Вопрос-Ответ

How do I connect to a MySQL Database in Python?

Как мне подключиться к базе данных MySQL на Python?

Как мне подключиться к базе данных MySQL с помощью программы на Python?

Переведено автоматически
Ответ 1

Подключение к MYSQL с помощью Python 2 в три этапа

1 - Настройка

Вы должны установить драйвер MySQL, прежде чем что-либо делать. В отличие от PHP, в Python по умолчанию устанавливается только драйвер SQLite. Наиболее используемый пакет для этого - MySQLdb, но его сложно установить с помощью easy_install . Пожалуйста, обратите внимание, что MySQLdb поддерживает только Python 2.

Для пользователя Windows вы можете получить exe-файл MySQLdb.

Для Linux это обычный пакет (python-mysqldb). (Вы можете использовать sudo apt-get install python-mysqldb (для дистрибутивов на базе debian), yum install MySQL-python (для rpm-based) или dnf install python-mysql (для современного дистрибутива fedora) в командной строке для загрузки.)

Для Mac вы можете установить MySQLdb с помощью Macport.

2 - Использование

После установки перезагрузитесь. Это не обязательно, но это помешает мне ответить на 3 или 4 других вопроса в этом посте, если что-то пойдет не так. Поэтому, пожалуйста, перезагрузитесь.

Тогда это точно так же, как при использовании любого другого пакета :

#!/usr/bin/python
import MySQLdb

db = MySQLdb.connect(host="localhost", # your host, usually localhost
user="john", # your username
passwd="megajonhy", # your password
db="jonhydb") # name of the data base

# you must create a Cursor object. It will let
# you execute all the queries you need
cur = db.cursor()

# Use all the SQL you like
cur.execute("SELECT * FROM YOUR_TABLE_NAME")

# print all the first cell of all the rows
for row in cur.fetchall():
print row[0]

db.close()

Конечно, существуют тысячи возможностей и опций; это очень простой пример. Вам нужно будет взглянуть на документацию. Хорошая отправная точка.

3 - Более расширенное использование

Как только вы узнаете, как это работает, вы можете захотеть использовать ORM, чтобы избежать написания SQL вручную и манипулировать своими таблицами так, как они были объектами Python. Самый известный ORM в сообществе Python - это SQLAlchemy.

Я настоятельно советую вам использовать это: ваша жизнь станет намного проще.

Недавно я обнаружил еще одну жемчужину в мире Python: peewee. Это очень облегченный ORM, его действительно легко и быстро настроить, а затем использовать. Это облегчает мне работу с небольшими проектами или автономными приложениями, где использование больших инструментов, таких как SQLAlchemy или Django, является излишеством :

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

Этот пример работает "из коробки". Ничего, кроме наличия peewee (pip install peewee), не требуется.

Ответ 2

Вот один из способов сделать это, используя MySQLdb, который поддерживает только Python 2:

#!/usr/bin/python
import MySQLdb

# Connect
db = MySQLdb.connect(host="localhost",
user="appuser",
passwd="",
db="onco")

cursor = db.cursor()

# Execute SQL select statement
cursor.execute("SELECT * FROM location")

# Commit your changes if writing
# In this case, we are only reading data
# db.commit()

# Get the number of rows in the resultset
numrows = cursor.rowcount

# Get and display one row at a time
for x in range(0, numrows):
row = cursor.fetchone()
print row[0], "-->", row[1]

# Close the connection
db.close()

Ссылка здесь

Ответ 3

Если вам не нужна MySQLdb, но вы бы приняли любую библиотеку, я бы очень, очень рекомендовал MySQL Connector / Python из MySQL: http://dev.mysql.com/downloads/connector/python / .

Это один пакет (около 110 кб), чистый Python, поэтому он не зависит от системы и очень прост в установке. Вы просто загружаете, дважды щелкаете, подтверждаете лицензионное соглашение и переходите. Нет необходимости в Xcode, MacPorts, компиляции, перезапуске …

Затем вы подключаетесь следующим образом:

import mysql.connector    
cnx = mysql.connector.connect(user='scott', password='tiger',
host='127.0.0.1',
database='employees')

try:
cursor = cnx.cursor()
cursor.execute("""
select 3 from your_table
"""
)
result = cursor.fetchall()
print result
finally:
cnx.close()
Ответ 4

Oracle (MySQL) теперь поддерживает чистый Python connector. Это означает, что никаких двоичных файлов для установки: это просто библиотека Python. Она называется "Connector / Python".

http://dev.mysql.com/downloads/connector/python/

После установки вы можете увидеть несколько примеров использования здесь

python