使用sqlalchemy的create_engine创建连接数据库的字符串,如下:
engine = create_engine('postgres://user:pass@host/database')
运行后出错,把密码和数据库地址识别错了,因为密码里包含了特殊字符@,被解释为定界符,导致密码和数据库地址被识别错误,无法连接数据库。
可以使用下面的方式解决:
from urllib import parse
connect = create_engine('mysql+pymysql://user:%s@localhost:3306/database?charset=utf8'% parse.quote_plus('badpass'))