溫馨提示×

Linux下Python與數(shù)據(jù)庫的交互

小樊
85
2024-08-07 01:12:15
欄目: 編程語言

在Linux下,Python可以通過多種方式與數(shù)據(jù)庫進行交互,其中常用的方式包括使用Python的數(shù)據(jù)庫模塊(如MySQLdb、psycopg2等)或者使用ORM框架(如SQLAlchemy)。

以下是一個使用Python的MySQLdb模塊連接MySQL數(shù)據(jù)庫的示例代碼:

import MySQLdb

# 連接到MySQL數(shù)據(jù)庫
db = MySQLdb.connect(host="localhost", user="root", passwd="password", db="test")

# 創(chuàng)建一個游標對象
cursor = db.cursor()

# 執(zhí)行SQL查詢
cursor.execute("SELECT * FROM table_name")

# 獲取查詢結果
results = cursor.fetchall()
for row in results:
    print(row)

# 關閉游標和數(shù)據(jù)庫連接
cursor.close()
db.close()

另外,如果使用ORM框架,可以簡化與數(shù)據(jù)庫的交互過程,以下是一個使用SQLAlchemy連接MySQL數(shù)據(jù)庫的示例代碼:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker

# 創(chuàng)建一個引擎對象
engine = create_engine('mysql://root:password@localhost/test')

# 創(chuàng)建一個基類
Base = declarative_base()

# 定義一個數(shù)據(jù)模型類
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)

# 創(chuàng)建數(shù)據(jù)表
Base.metadata.create_all(engine)

# 創(chuàng)建一個會話類
Session = sessionmaker(bind=engine)
session = Session()

# 查詢數(shù)據(jù)
users = session.query(User).all()
for user in users:
    print(user.name)

# 關閉會話
session.close()

無論是使用數(shù)據(jù)庫模塊還是ORM框架,Python都可以方便地與數(shù)據(jù)庫進行交互并執(zhí)行各種操作。

0