flask-sqlalchemy:连接密码包含特殊字符%%

问题描述

我想使用flask-sqlalchemy连接我的SQL数据库,但是我无法连接到SQL,因为SQL数据库的密码就像“ qUa%d6”。 这很奇怪,因为我可以使用“ password”之类的密码正常连接到SQL。 更改SQL密码可能可以解决问题,但是我认为也应该修复此错误。

我的SQL信息是:

DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'xxx'
PASSWORD = 'qUa%d6'
HOST = 'xxx'
PORT = 'xxx'
DATABASE = 'xxx'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST,PORT,DATABASE)

unicode错误是:

Traceback (most recent call last):
  File "sqldemo.py",line 37,in <module>
    db.create_all()    # 真正建立模型到数据库
  File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 1039,in create_all
    self._execute_for_all_tables(app,bind,'create_all')
  File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 1031,in _execute_for_all_tables
    op(bind=self.get_engine(app,bind),**extra)
  File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 962,in get_engine
    return connector.get_engine()
  File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 556,in get_engine
    self._engine = rv = self._sa.create_engine(sa_url,options)
  File "/usr/lib/python2.7/site-packages/flask_sqlalchemy/__init__.py",line 972,in create_engine
    return sqlalchemy.create_engine(sa_url,**engine_opts)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/__init__.py",line 500,in create_engine
    return strategy.create(*args,**kwargs)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/strategies.py",line 98,in create
    (cargs,cparams) = dialect.create_connect_args(u)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py",line 184,in create_connect_args
    database="db",username="user",password="passwd"
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py",line 216,in translate_connect_args
    if name is not None and getattr(self,sname,False):
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/url.py",line 134,in password
    return util.text_type(self.password_original)
UnicodeDecodeError: 'ascii' codec can't decode byte 0xd6 in position 3: ordinal not in range(128)

环境

  • Python版本:2.7
  • Flask-SQLAlchemy版本:2.4.4
  • SQLAlchemy版本:1.3.18

我在Writing a connection string when password contains special characters中尝试过解决方法
虽然ascii解码错误消失了,但是程序卡住了,我的席特尔无法连接到SQL

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...