gur*_*uri 2 python mysql database-connection urlparse
DATABASE_URL- MYSQL://用户名:password @ host:port/database_name
错误:database_name没有属性.
if 'DATABASE_URL' in os.environ:
url = urlparse(os.getenv['DATABASE_URL'])
g['db'] = mysql.connector.connect(user=url.username,password=url.password, host=url.hostname ,port=url.port,path=url.path[1:])
Run Code Online (Sandbox Code Playgroud)
Put*_*tna 15
使用标准 python3 库
from urllib.parse import urlparse
dbc = urlparse('mysql://username:password@host:3306/database_name')
print(dbc.scheme, dbc.hostname, dbc.port, dbc.username, dbc.password, dbc.path.lstrip('/'))
#output: mysql host port username password database_name
Run Code Online (Sandbox Code Playgroud)
ale*_*cxe 11
首先,url.host会导致:
AttributeError:'ParseResult'对象没有属性'host'
使用url.hostname来代替.
要获取database_name提供的URL,请使用path:
url.path[1:]
Run Code Online (Sandbox Code Playgroud)
替代"不要重新发明轮子"的方法来解决问题的方法是使用sqlalachemy's make_url(),这是基于regexp的:
In [1]: from sqlalchemy.engine.url import make_url
In [2]: url = make_url("MYSQL://username:password@host:100/database_name")
In [3]: print url.username, url.password, url.host, url.port, url.database
username password host 100 database_name
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3343 次 |
| 最近记录: |