例如用户名是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实例就行了

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐