首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场

@改为%40
EN

Stack Overflow用户
提问于 2022-12-04 05:52:46
回答 1查看 24关注 0票数 -1

我使用sqlalchemy并使用

代码语言:javascript
运行
复制
 url = url.URL(
                 drivername,
                 host,
                 username,
                 password,
                 database)

这不管用

代码语言:javascript
运行
复制
 url = url.URL(
                 drivername='mysql+pymysql',
                 host='abc.com',
                 username='app',
                 password=u'56f@;',
                 database='app')

logging.info(f'url:{url})给出

代码语言:javascript
运行
复制
mysql+pymysql://app:6f%40;@abc.com/app
代码语言:javascript
运行
复制
url = create_engine(url)
results = url.execute(sql_query).fetchall()

密码包含一个符号“@”,该符号正在被转换为%40。我不希望这种转变发生。我怎么才能避免。

EN

回答 1

Stack Overflow用户

发布于 2022-12-04 05:58:40

为了避免在创建SQLAlchemy引擎URL时对密码中的特殊字符进行编码,可以在将密码传递给url.URL()方法之前使用urllib.parse模块中的url.URL()方法对密码进行编码。

代码语言:javascript
运行
复制
import sqlalchemy as sa
from urllib.parse import quote

# Create the URL object with the encoded password
engine_url = sa.engine.url.URL(
    drivername,
    host,
    username,
    quote(password),
    database,
)

这将对密码中的任何特殊字符进行编码,如符号&,这样SQLAlchemy就不会将它们解释为URL语法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74673195

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档