pip install pymysql
使いやすい
pymysql.connectを使用してデータベース接続を確立し、SQLコマンドを実行します(データベースは事前に構築する必要があります)。
import pymysql
db = pymysql.connect(
# mysql 地址
host='182.92.129.158',
# 账号和密码
user='tmp',
password='ceshiren.com',
# 数据库
db='tmp',
charset='utf8mb4'
)
if __name__ == '__main__':
with db.cursor() as cursor:
# 查看数据库中有多少表
sql = "show tables;"
# 执行 sql 语句
cursor.execute(sql)
# 查看所有数据
print(cursor.fetchall())
# 查询 name = aaaaaa 的数据
sql = "select * from test_case_table where name=%s"
cursor.execute(sql, ["aaaaaa"])
print(cursor.fetchall())
(('test_case_table',),)
(('aaaaaa', '新的测试用例', 'test_hello.py', 'def test'),)
ORM
オブジェクトリレーショナルマッピング(オブジェクトリレーショナルマッピング)は、Pythonオブジェクトの操作など、言語機能を使用してデータベースを操作します。操作の内容はデータベースにマップされます。
SQLALchemyは、Pythonプログラミング言語のORMフレームワークです。このフレームワークは、データベースAPIに基づいて構築されており、データベース操作にリレーショナルオブジェクトマッピングを使用します。
インストール
pip3 install SQLAlchemy
インストールが完了したら、データベース接続を作成できます。
engine = create_engine("mysql+pymysql://tmp:[email protected]/tmp?charset=utf8",echo=True,)
1.echo:Trueに設定すると、ORMステートメントは印刷用のSQLステートメントに変換されます。これは、通常、デバッグに使用できます。
2.フィールドの説明:
3.mysql + pymysql:接続モード。pymysqlを使用します。
4.tmp:ceshiren.com:ユーザー名:パスワード。
5.182.92.129.158/tmp:データベースアドレスとデータベース名。
データベースを作成する
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import declarative_base
engine = create_engine("mysql+pymysql://tmp:[email protected]/tmp?charset=utf8",
echo=True,
)
# 其子类将 Python 类和数据库表关联映射起来
Base = declarative_base()
# 继承 Base
class Users(Base):
__tablename__ = "users"
id = Column(Integer, primary_key=True)
name = Column(String(64), unique=True)
def __init__(self, name):
self.name = name
if __name__ == '__main__':
# 生成数据库表,如果有此库会忽略
Base.metadata.create_all(engine)
declarative_base()は、SQLALchemyによって内部的にカプセル化されたメソッドであり、そのサブクラスがPythonクラスをデータベーステーブルに関連付けてマップできるようにします。
追加して確認する
SQLALchemyはSessionを使用して、プログラムとデータベースの間にセッションを作成します。データの追加、削除、変更、およびクエリは、Sessionオブジェクトを介して実現できます。
from sqlalchemy.orm import sessionmaker
# 创建session
Session = sessionmaker(bind=engine)
session = Session()
# 添加新数据
add_user = Users("student1")
# 提交
session.add(add_user)
session.commit()
# 查询
result = session.query(Users).filter_by(name="student1").first()
print(result.id, result.name)
上記のコードがデータを追加した後、それをクエリすると、結果は次のようになります。
1 student1
ここでは、データ永続化テクノロジーを最初に紹介します。いくつかの演習を試すことができます。
クロスプラットフォームAPIドッキングについては後で説明します。引き続き注意してください〜