python - 如何在 Python 中连接到 MySQL 数据库?

标签 python mysql

如何使用 python 程序连接到 MySQL 数据库?

最佳答案

三步用Python 2连接MYSQL

1 - 设置

您必须先安装 MySQL 驱动程序,然后再进行任何操作。与 PHP 不同,Python 默认仅安装 SQLite 驱动程序。最常用的包是 MySQLdb但是很难使用 easy_install 来安装它。请注意 MySQLdb 仅支持 Python 2。

对于 Windows 用户,您可以获得 exe of MySQLdb .

对于 Linux,这是一个临时包 (python-mysqldb)。 (您可以使用 sudo apt-get install python-mysqldb(对于基于 debian 的发行版)、yum install MySQL-python(对于基于 rpm 的发行版)或 dnf在命令行中安装 python-mysql(适用于现代 fedora 发行版)以进行下载。)

对于 Mac,您可以 install MySQLdb using 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()

当然,有成千上万的可能性和选择;这是一个非常基本的例子。您将不得不查看文档。 A good starting point .

3 - 更高级的用法

一旦你知道它是如何工作的,你可能想使用 ORM避免手动编写 SQL 和操作您的表,因为它们是 Python 对象。 Python 社区最著名的 ORM 是 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)即可。

关于python - 如何在 Python 中连接到 MySQL 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44998838/

相关文章:

Python 循环遍历 XML 中的元素并获取子元素值

python - py2exe MemoryLoadLibrary 加载 _ssl.pyd 失败,Win7<->Win10

python - 从列表中获取所有成对组合

php - UTF-8贯穿始终

具有 *ANY* 标准的 Java SQL 准备语句

mysql - 为什么 ruby​​ 检测不到无效编码而 mysql 检测到?

python - 如何访问字典中的第一个和最后一个元素?

Python scipy.numpy.convolve 和 scipy.signal.fftconvolve 不同的结果

mysql - 在mySql中选择基于特定时间的数据

java - Netty 服务器挂起不接受任何连接