# 配置引擎,建立数据库的链接 from sqlalchemy import create_engine,MetaData from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy_utils import create_database,database_exists engine = create_engine("mysql+pymysql://root:密码@机器:3306/数据库名称?charset=utf8&autocommit=true", echo=True, max_overflow=5, pool_recycle=60, pool_pre_ping=True) # 判断写入的数据库是否存在 if not database_exists(engine.url): create_database(engine.url) # 创建ORM对象的基类,用于后续创建class类 Base = declarative_base()
# 创建metadate对象,关联engine使用metadata创建数据库表 metadata = MetaData(engine) # 定义session会话对象,创建一个会话,便于后面对数据库进行实际操作 Session = sessionmaker() session = Session(bind=engine) ===================================== from lib.sqlalchemyengine import Base,engine from sqlalchemy import Column,Integer,String,DateTime from sqlalchemy.sql import func class Application(Base): # 数据库表名称 __tablename__ = 'application_work_order' # 字段名称,integer:整数,coilumn:列,string:字符串 app_id=Column(Integer,primary_key=True) app_name=Column(String(250)) sys_id=Column(Integer) deploy_environment=Column(String(50)) deploy_link=Column(String(250)) deploy_link_desc=Column(String(50)) create_time = Column(DateTime(), server_default=func.now()) update_time = Column(DateTime(), server_default=func.now()) # 类里的方法 def to_json(self): dict = self.__dict__ if "_sa_instance_state" in dict: del dict["_sa_instance_state"] return dict # 实体类里字段转换成json格式 def obj2json(self): return { "app_id":self.app_id, "app_name":self.app_name, "sys_id" : self.sys_id, "deploy_environment":self.deploy_environment, "deploy_link":self.deploy_link, "deploy_link_desc":self.deploy_link_desc, "create_time":self.create_time, "update_time":self.update_time } # 父类Base调用所有继承他的子类来创建表结构 # Base.metadata.create_all(engine) 总结:使用sqlalchemy的四部走 create_engine,配置引擎,建立数据库链接 Base = declarative_base(),生成ORM基类,用于创建class类 Base.metadata.create_all(engine),#关联engine使用metadata(元数据)创建数据库表 Session = sessionmaker(),#创建一个会话,便于后面对数据库进行实际操作 session = Session(bind=engine) 建立链接,关系映射,创建库表,操作库表
所有人的温柔,都是柔软生的茧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?