flask的sqlalchemy连接达梦数据库使用同一个用户访问不同模式,自由切换

例如用户名是Jay,默认的模式也是Jay,又创建了一个模式叫Jack

达梦的模式就是mysql的库名,达梦用户与模式是一对多的关系

sqlalchemy连接达梦示例



def get_session(sql_url=None):
    '''
    此方法用来获取数据库连接池的session
    :return: session
    '''
    if sql_url is None:
        sql_url = 'dm+dmPython://{}:{}@{}:{}'.format(DM_USER, DM_PASS, DM_HOST, DM_PORT)
    # print('sql_url:{}'.format(sql_url))
    engine = create_engine(
        sql_url,
        pool_size=20,
        pool_recycle=7200, # 连接回收时间/秒/-1永不回收,session被回收之后重新生成新连接保证不断
        pool_pre_ping=True, # 预检测池中连接是否有效,并替换无效连接
        pool_use_lifo=True, # 使用后进先出的方式获取连接,允许多余连接保持空闲
        echo_pool=True, # 打印出连接池的异常信息
        max_overflow=5 # 最大允许溢出连接池大小的连接数量
    )
    Session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine))
    session = Session()
    session.execute("ALTER SESSION SET CURRENT_SCHEMA = 模式名字")
    return session

这是实例化flask的app的代码块

把模式名字改了就行
app = Flask(__name__)
app.config['FLASK_ENV'] = "production"
app.config['JSON_SORT_KEYS'] = False
app.config['JSONIFY_PRETTYPRINT_REGULAR'] = True
app.dm_session = get_session()

然后重启flask实例就行了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值