如何寫好網(wǎng)站文案站長(zhǎng)之家官網(wǎng)入口
背景需求
連接數(shù)據(jù)庫(kù),插入表中一些數(shù)據(jù)。
其用戶是新建用戶,所以只能插入,不能更新。
再次輸入數(shù)據(jù)則使用更新數(shù)據(jù)語(yǔ)法,這個(gè)沒調(diào)試。
#! /usr/bin/env python
# -*- coding: utf-8 -*-from sqlalchemy import create_engine, Column, BigInteger, Integer, String, SmallInteger, DECIMAL, DateTime
from sqlalchemy.orm import declarative_base, sessionmaker
from datetime import datetime# 1. 創(chuàng)建一個(gè)基本的 ORM 映射類
Base = declarative_base()# 2. 創(chuàng)建一個(gè)映射到數(shù)據(jù)庫(kù)表的類(模型)
class AAAAAA(Base):__tablename__ = 'aaaaaaa' # 數(shù)據(jù)庫(kù)中的表名id = Column(BigInteger, primary_key=True)uid = Column(BigInteger)mid = Column(BigInteger)account_type = Column(SmallInteger)variety_code = Column(String(20))balance = Column(DECIMAL(20, 8))available = Column(DECIMAL(20, 8))freeze = Column(DECIMAL(20, 8))create_time = Column(DateTime)update_time = Column(DateTime)def __repr__(self):# return f"<AAAAAA(uid={self.uid}, mid={self.mid}, account_type={self.account_type}, " \return f"<AAAAAA(id={self.id}, uid={self.uid}, mid={self.mid}, account_type={self.account_type}, " \f"variety_code={self.variety_code}, balance={self.balance}, available={self.available}, " \f"freeze={self.freeze}, create_time={self.create_time}, update_time={self.update_time})>"# 3. 配置數(shù)據(jù)庫(kù)連接信息
# 請(qǐng)根據(jù)實(shí)際情況修改數(shù)據(jù)庫(kù)連接 URL 格式:
# 例如 'mysql+mysqlconnector://username:password@host:port/database_name'
DATABASE_URL = 'mysql+pymysql://user:123455hGv@172.31.116.214:3306/passwd'# 4. 創(chuàng)建數(shù)據(jù)庫(kù)引擎
engine = create_engine(DATABASE_URL, echo=True)# 5. 創(chuàng)建所有表(如果尚未創(chuàng)建)
Base.metadata.create_all(engine)# 6. 創(chuàng)建 Session 類
Session = sessionmaker(bind=engine)# 7. 插入數(shù)據(jù)的操作
def insert_data(data):session = Session()# 創(chuàng)建 User 對(duì)象并添加到 sessionnew_data = AAAAAA(#id=1306936888,uid=data,mid=1681530298,account_type=1,variety_code='usdt',balance=200.00000000,available=200.00000000,freeze=0.00000000,create_time=datetime.strptime('2024-10-16 14:48:15', '%Y-%m-%d %H:%M:%S'),update_time=datetime.strptime('2024-11-05 11:09:30', '%Y-%m-%d %H:%M:%S'))session.add(new_data)# 提交事務(wù)session.commit()# 輸出插入的對(duì)象print(f"Inserted: {new_data}")# 關(guān)閉 sessionsession.close()# def update_data(id):
# session = Session()
#
# # 7. 查詢是否存在具有該 id 的記錄
# record = session.query(AAAAAA).filter(AAAAAA.id == id).first()# if record:
# # 8. 修改記錄的字段
# record.balance = 500.00000000 # 修改余額為 500
# record.available = 500.00000000 # 修改可用余額為 500
# record.freeze = 0.00000000 # 修改凍結(jié)余額為 0
# record.update_time = datetime.strptime('2024-12-26 10:00:00', '%Y-%m-%d %H:%M:%S') # 更新時(shí)間
#
# # 9. 提交事務(wù)
# session.commit()
# print(f"Updated: {record}")
# else:
# print(f"Record with id {id} not found!")
#
# # 10. 關(guān)閉 session
# session.close()if __name__ == "__main__":uid = "1918509385"insert_data(uid)