📅  最后修改于: 2023-12-03 15:18:56.798000             🧑  作者: Mango
如果你是一个Python开发者,并且需要在你的应用中使用MySQL数据库,那么你来对了地方。在这里,我们将介绍一些最好的Python MySQL资源,帮助你开始使用MySQL数据库。
PyMySQL 是一个纯Python接口的MySQL客户端库。它实现了Python DB API v2.0规范,支持Python27、Python34、Python35、Python36和Python37版本。
使用PyMySQL库,您可以轻松地与MySQL数据库进行通信。
以下是创建数据库,并添加数据到表中的示例Python程序:
import pymysql.cursors
# 连接数据库
connection = pymysql.connect(host='localhost',
user='user',
password='passwd',
db='db_name',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor)
try:
# 创建表
with connection.cursor() as cursor:
sql = "CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`))"
cursor.execute(sql)
# 插入数据
with connection.cursor() as cursor:
# Create a new record
sql = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
cursor.execute(sql, ('john@example.com', 'secret'))
# 提交事务
connection.commit()
# 查询数据
with connection.cursor() as cursor:
# Read a single record
sql = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
cursor.execute(sql, ('john@example.com',))
result = cursor.fetchone()
print(result)
finally:
# 关闭数据库连接
connection.close()
mysql-connector-python是MySQL官方支持的Python连接器。该连接器实现了Python Database API规范v2.0,并支持Python27、Python34、Python35、Python36和Python37版本。
该库提供了与MySQL服务器通信的标准API,使得连接MySQL数据库非常容易。
以下是使用mysql-connector-python库连接数据库,并向表中添加数据的示例Python程序:
import mysql.connector
# 连接到数据库
cnx = mysql.connector.connect(user='user', password='passwd',
host='127.0.0.1',
database='db_name')
cursor = cnx.cursor()
# 创建表
create_table_query = "CREATE TABLE `users` (`id` int(11) NOT NULL AUTO_INCREMENT, `email` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, PRIMARY KEY (`id`))"
cursor.execute(create_table_query)
# 插入数据
insert_query = "INSERT INTO `users` (`email`, `password`) VALUES (%s, %s)"
insert_values = ('john@example.com', 'secret')
cursor.execute(insert_query, insert_values)
# 提交事务
cnx.commit()
# 查询数据
select_query = "SELECT `id`, `password` FROM `users` WHERE `email`=%s"
select_values = ('john@example.com',)
cursor.execute(select_query, select_values)
result = cursor.fetchone()
# 打印结果
print(result)
# 关闭连接
cursor.close()
cnx.close()
MySQLdb是Python的一个库,提供了一个接口来与MySQL数据库通信。它实现了Python DB API v2.0规范,并且支持Python2.3到Python2.7。
除了支持MySQL还支持以下数据库:
以下是使用MySQLdb库连接到数据库并执行查询的示例Python程序:
import MySQLdb
# 连接到数据库
db = MySQLdb.connect(host="localhost", # 主机名
user="root", # 用户名
passwd="passwd", # 密码
db="db_name") # 数据库名称
# 创建游标
cur = db.cursor()
# 执行查询
cur.execute("SELECT * FROM `users`")
# 获取结果
for row in cur.fetchall():
print(row)
# 关闭连接和游标
cur.close()
db.close()
SQLAlchemy是一个Python ORM库,它提供了使用SQL的完整数据库访问解决方案。它支持多个数据库后端,包括SQLite,MySQL,PostgreSQL,Oracle等。
以下是使用SQLAlchemy库,查询数据库中的数据的示例Python程序:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
# 连接到数据库
engine = create_engine('mysql+pymysql://user:passwd@localhost/db_name', echo=True)
# 创建Session
Session = sessionmaker(bind=engine)
session = Session()
# 定义表结构
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
email = Column(String(255), unique=True)
password = Column(String(255))
def __repr__(self):
return "<User(email='%s', password='%s')>" % (self.email, self.password)
# 查询数据
user = session.query(User).filter_by(email='john@example.com').first()
print(user)
# 关闭Session
session.close()
Django是一个重量级的Python Web框架,它提供了与多个数据库后端的ORM支持,包括SQLite,MySQL,PostgreSQL,Oracle等。
以下是使用Django ORM库,查询数据库中的数据的示例Python程序:
from django.db import models
# 定义ORM模型
class User(models.Model):
email = models.EmailField()
password = models.CharField(max_length=255)
# 查询数据
user = User.objects.get(email='john@example.com')
print(user)
Flask-MySQLdb是一个为Flask项目提供MySQL数据库访问支持的库。
以下是使用Flask-MySQLdb库,向表中插入数据的示例Python程序:
from flask import Flask
from flask_mysqldb import MySQL
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'user'
app.config['MYSQL_PASSWORD'] = 'passwd'
app.config['MYSQL_DB'] = 'db_name'
mysql = MySQL(app)
# 插入数据
@app.route('/')
def insert_data():
cur = mysql.connection.cursor()
cur.execute("INSERT INTO `users` (`email`, `password`) VALUES ('john@example.com', 'secret')")
mysql.connection.commit()
cur.close()
return 'Data inserted into database.'
if __name__ == '__main__':
app.run()
以上是一些最好的Python MySQL资源,可以帮助您开始使用MySQL数据库。您可以在您的Python应用程序中使用任何一个,根据您的需要进行选择。