Как мне подключиться к базе данных MySQL на Python?
Как мне подключиться к базе данных MySQL с помощью программы на Python?
Переведено автоматически
Ответ 1
Подключение к MYSQL с помощью Python 2 в три этапа
1 - Настройка
Вы должны установить драйвер MySQL, прежде чем что-либо делать. В отличие от PHP, в Python по умолчанию устанавливается только драйвер SQLite. Наиболее используемый пакет для этого - MySQLdb, но его сложно установить с помощью easy_install . Пожалуйста, обратите внимание, что MySQLdb поддерживает только Python 2.
Для Linux это обычный пакет (python-mysqldb). (Вы можете использовать sudo apt-get install python-mysqldb (для дистрибутивов на базе debian), yum install MySQL-python (для rpm-based) или dnf install python-mysql (для современного дистрибутива fedora) в командной строке для загрузки.)
После установки перезагрузитесь. Это не обязательно, но это помешает мне ответить на 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')
classBook(peewee.Model): author = peewee.CharField() title = peewee.TextField()
classMeta: 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()
# ExecuteSQLselect statement cursor.execute("SELECT * FROM location")
# Commit your changes if writing # In this case, we areonly reading data # db.commit()
# Get the number ofrowsin the resultset numrows = cursor.rowcount
# Getand display onerowat a time for x inrange(0, numrows): row= cursor.fetchone() print row[0], "-->", row[1]
Это один пакет (около 110 кб), чистый Python, поэтому он не зависит от системы и очень прост в установке. Вы просто загружаете, дважды щелкаете, подтверждаете лицензионное соглашение и переходите. Нет необходимости в Xcode, MacPorts, компиляции, перезапуске …
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".