今天在用sqlalchemy创建mysql engine时报错

from sqlalchemy import create_engine
engine = create_engine(f'mysql+pymysql://{user}:{password}@{address}:{port}/{database}', pool_size=2000, max_overflow=0)

原来是用因为password中存在“@”或“:”等特殊字符

使用URL编码即可解决

import urllib
from sqlalchemy import create_engine
engine = create_engine(f'mysql+pymysql://{user}:{urllib.parse.quote_plus(password)}@{address}:{port}/{database}', pool_size=2000, max_overflow=0)

参考:https://stackoverflow.com/a/1424009

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐