Python与MySQL数据库交互是通过数据库连接实现的,主要涉及以下几个核心概念:
import pymysql
# 建立数据库连接
connection = pymysql.connect(
host='localhost',
user='username',
password='password',
database='dbname',
charset='utf8mb4',
cursorclass=pymysql.cursors.DictCursor
)
try:
with connection.cursor() as cursor:
# 插入单条数据
sql = "INSERT INTO users (email, password) VALUES (%s, %s)"
cursor.execute(sql, ('user@example.com', 'securepassword'))
# 提交事务
connection.commit()
with connection.cursor() as cursor:
# 批量插入数据
sql = "INSERT INTO users (email, password) VALUES (%s, %s)"
data = [
('user1@example.com', 'password1'),
('user2@example.com', 'password2'),
('user3@example.com', 'password3')
]
cursor.executemany(sql, data)
# 提交事务
connection.commit()
finally:
connection.close()
import mysql.connector
# 建立数据库连接
db = mysql.connector.connect(
host="localhost",
user="username",
password="password",
database="dbname"
)
cursor = db.cursor()
# 插入数据
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = ("John", "Highway 21")
cursor.execute(sql, val)
# 提交事务
db.commit()
print(cursor.rowcount, "记录插入成功。")
# 批量插入
sql = "INSERT INTO customers (name, address) VALUES (%s, %s)"
val = [
('Peter', 'Lowstreet 4'),
('Amy', 'Apple st 652'),
('Hannah', 'Mountain 21')
]
cursor.executemany(sql, val)
db.commit()
print(cursor.rowcount, "记录插入成功。")
cursor.close()
db.close()
原因:
解决方案:
原因:
解决方案:
原因:
解决方案:
原因:
解决方案:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
nickname = Column(String)
# 创建引擎
engine = create_engine('mysql+pymysql://username:password@localhost/dbname')
# 创建表
Base.metadata.create_all(engine)
# 创建会话
Session = sessionmaker(bind=engine)
session = Session()
# 添加数据
new_user = User(name='ed', fullname='Ed Jones', nickname='edsnickname')
session.add(new_user)
# 批量添加
session.add_all([
User(name='wendy', fullname='Wendy Williams', nickname='windy'),
User(name='mary', fullname='Mary Contrary', nickname='mary'),
User(name='fred', fullname='Fred Flintstone', nickname='freddy')
])
# 提交事务
session.commit()
session.close()
通过以上方法和最佳实践,可以高效、安全地在Python中向MySQL数据库发送数据。
没有搜到相关的文章