Maison  >  Article  >  développement back-end  >  Raccourcis vers les opérations de base de données Python : évitez les détours et atteignez le sommet des opérations de base de données

Raccourcis vers les opérations de base de données Python : évitez les détours et atteignez le sommet des opérations de base de données

王林
王林avant
2024-02-19 22:51:10889parcourir

Raccourcis vers les opérations de base de données Python : évitez les détours et atteignez le sommet des opérations de base de données

Lorsque nous utilisons python pour effectuer des opérations de base de données, nous rencontrons souvent des erreurs et des problèmes courants. Ces erreurs et problèmes affectent non seulement la qualité et l’efficacité opérationnelle du code, mais rendent également difficile son débogage et sa maintenance. Pour vous aider à éviter ces problèmes, cet article vous fournira quelques conseils et astuces précieux pour vous aider à améliorer vos compétences opérationnelles en base de données, améliorant ainsi l'efficacité du travail et la qualité du projet.

  1. Utilisez des requêtes paramétrées pour éviter les attaques par injection sql. Les attaques par injection SQL sont une vulnérabilité de sécurité courante qui permet aux attaquants d'accéder ou de corrompre une base de données en injectant du code malveillant dans des requêtes SQL. Pour empêcher les attaques par injection SQL, les instructions SQL doivent être construites à l'aide de requêtes paramétrées. Les requêtes paramétrées peuvent empêcher les attaquants d'injecter du code malveillant dans les instructions SQL, garantissant ainsi la sécurité de la base de données.
import Mysql.connector

# 建立数据库连接
connection = mysql.connector.connect(host="localhost",
 database="mydb",
 user="user",
 passWord="password")

# 创建游标
cursor = connection.cursor()

# 使用参数化查询来查询数据
sql = "SELECT * FROM users WHERE username=%s"
param = ("john",)

# 执行查询
cursor.execute(sql, param)

# 获取查询结果
result = cursor.fetchall()

# 打印查询结果
for row in result:
print(row)

# 关闭游标和数据库连接
cursor.close()
connection.close()
  1. Utilisez Transactions pour garantir la cohérence des données. Une transaction est une séquence atomique d'opérations qui se termine avec succès ou est complètement annulée. L'utilisation de transactions garantit la cohérence des données même en présence d'erreurs ou de pannes du système. Dans Python, vous pouvez utiliser les instructions with pour gérer les transactions.
import mysql.connector

# 建立数据库连接
connection = mysql.connector.connect(host="localhost",
 database="mydb",
 user="user",
 password="password")

# 创建游标
cursor = connection.cursor()

# 启动事务
cursor.start_transaction()

try:
# 执行SQL语句
sql = "UPDATE users SET balance=balance+100 WHERE username=%s"
param = ("john",)
cursor.execute(sql, param)

# 提交事务
connection.commit()
except:
# 回滚事务
connection.rollback()

# 关闭游标和数据库连接
cursor.close()
connection.close()
  1. Utilisez le regroupement de connexions pour améliorer les performances des connexions à la base de données. Le pooling de connexions est un pool de connexions de base de données pré-créé qui améliore les performances des connexions de base de données. En Python, vous pouvez utiliser la classe pymysql库中的ConnectionPool pour créer un pool de connexions.
from pymysql import ConnectionPool

# 创建连接池
connection_pool = ConnectionPool(host="localhost",
database="mydb",
user="user",
password="password",
max_connections=5)

# 获取连接
connection = connection_pool.get_connection()

# 创建游标
cursor = connection.cursor()

# 执行SQL语句
sql = "SELECT * FROM users WHERE username=%s"
param = ("john",)
cursor.execute(sql, param)

# 获取查询结果
result = cursor.fetchall()

# 打印查询结果
for row in result:
print(row)

# 关闭游标和连接
cursor.close()
connection.close()
  1. Utilisez ORMframework pour simplifier les opérations de base de données. Le framework ORM est un framework de mappage objet-relationnel qui mappe les données des bases de données relationnelles aux objets Python. L'utilisation d'un framework ORM peut simplifier les opérations de base de données et améliorer la lisibilité et la maintenabilité du code. En Python, vous pouvez utiliser la bibliothèque sqlalchemy pour utiliser le framework ORM.
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:password@localhost/mydb")

# 创建会话
Session = sessionmaker(bind=engine)
session = Session()

# 定义模型
Base = declarative_base()
class User(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
username = Column(String(20))
balance = Column(Integer)

# 查询数据
user = session.query(User).filter_by(username="john").first()

# 更新数据
user.balance += 100
session.commit()

# 关闭会话
session.close()
  1. Sauvegardez régulièrement votre base de données pour éviter toute perte de données. La sauvegarde régulière de votre base de données peut éviter la perte de données. En Python, vous pouvez utiliser la commande mysqldump pour sauvegarder la base de données.
mysqldump -u user -p password mydb > backup.sql

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer