📜  Python MySQL-有用的资源(1)

📅  最后修改于: 2023-12-03 15:18:56.798000             🧑  作者: Mango

Python MySQL-有用的资源

如果你是一个Python开发者,并且需要在你的应用中使用MySQL数据库,那么你来对了地方。在这里,我们将介绍一些最好的Python MySQL资源,帮助你开始使用MySQL数据库。

目录
PyMySQL

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-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

MySQLdb是Python的一个库,提供了一个接口来与MySQL数据库通信。它实现了Python DB API v2.0规范,并且支持Python2.3到Python2.7。

除了支持MySQL还支持以下数据库:

  • MySQL;
  • mSQL;
  • SQLite;
  • Oracle;
  • Sybase;
  • Microsoft SQL Server;
  • PostgreSQL。

以下是使用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

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

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-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应用程序中使用任何一个,根据您的需要进行选择。