密码为%的数据库URL不能与sqlalchemy一起使用

时间:2016-10-13 07:24:47

标签: django python-2.7 sqlalchemy pymysql

我正在从uwsgi文件中的env变量中读取DATABASE_URL。我的django ORM连接正在使用密码%,但是当我尝试连接sqlalchemy时,它无法正常工作。

from sqlalchemy import orm, create_engine, MetaData
from app.settings import DATABASES
from urllib import quote_plus

con = "mysql+pymysql://{0}:{1}@{2}:{3}/{4}".format(
        DATABASES['default']['USER'],
        DATABASES['default']['PASSWORD'], 
        DATABASES['default']['HOST'],
        DATABASES['default']['PORT'],
        DATABASES['default']['NAME']
    )

engine = create_engine(
    con,
    echo=False,
    pool_recycle=1800,
    max_overflow = 250,
    pool_size=200
)

我甚至试过quote_plus但它没有奏效。

这不起作用 mysql+pymysql://api:@>J.6D%qhZ@localhost:3306/table_tmp

这适用于 mysql+pymysql://api:@>J.6DqhZ@localhost:3306/table_tmp

当我通过ipython使用与相同的密码时,它可以工作,但是通过uwsgi.ini文件中的env变量,它不会

0 个答案:

没有答案