flask/sqlalchemy/python/windows/linux/gbase8s
为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【GBase版本】:GBase8sV8.8 S5.0.0B58
【操作系统】: win10
【CPU】:
【问题描述】*: python3.9 flask==2.2.5, sqlalchemy==2.0.44,gbase8s-sqlalchemy==2.0.1,gbase8sdb==0.2.1
### 你真的支持flask吗?
> 行行行,gbase-dialect-sqlalchemy_1.4.49不提供就算了(我理解是有一个sqlalchemy_gbase这样的一个方言包对吧,类似达梦数据库sqlalchemy_dm,人家达梦安装也挺费劲啊,但是人家的各种包都能找到,三下五除二我也整出来一套环境了),咱直接抛弃flask-sqlalchemy直接使用sqlalchemy行吧

### 参考https://www.gbase.cn/community/post/5608
> 说python直接安装gbase8s-sqlalchemy,配置GSDK(文档一直说获取获取,也不说在哪里获取,又找了半天),行,GSDK我就找,我也找到了对吧,我解压到D:\opt\GSDK_3.6.3_3X3_1_1.1.0_1_39d3ca_Windows_x86_64,也加入环境变量重启电脑了


### 还是按照https://www.gbase.cn/community/post/5608说的创建sqlalchemy引擎
sql_url = 'gbase8s+gbase8sdb://用户名:密码@IP:PORT/数据库?GBASEDBTSERVER=gbase8s01&DB_LOCALE=en_US.utf8&CLIENT_LOCALE=en_US.utf8'
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()
说字符集有问题:我就查看数据库字符集,我一看没问题啊,是英文,那我就改

### 结果不管咋改就是一个错误:23101

who help me i call you big bro
谁能帮帮我,我进行不下去了
评论

_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit'这个错误是什么知道吗
错误,说是数据库返回的数据中包含非 UTF-8 编码的字符(如 GBK 编码的中文等),而 SQLAlchemy 底层默认用 UTF-8 解码这些字符,导致解码失败。我一查我的数据库是客户端编码: ('UTF8',)
支持的编码: [('UTF8',)]
服了
(single_node GBase8sV8.8 S5.0.0B58 build e6f7a10c) compiled at 2025-07-09 14:28:04 commit 0 last mr 901 on x86_64-unknown-linux-gnu, compiled by g++ (GCC) 7.3.0, 64-bit
热门帖子
- 12025-12-01浏览数:182153
- 22023-05-09浏览数:24432
- 42023-09-25浏览数:17691
- 52020-05-11浏览数:16695