* * * 文章内容仅是作为个人学习记录,如有不足,欢迎指正♥
# 配置引擎,建立数据库的链接
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) 建立链接,关系映射,创建库表,操作库表

 

posted on 2022-07-21 16:27  __陈胖胖  阅读(2130)  评论(0)    收藏  举报