11

DATABASE_URL - MYSQL://username: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:])
4

3 に答える 3

21

まず第一に、url.host結果は次のようになります。

AttributeError: 'ParseResult' オブジェクトに属性 'host' がありません

代わりに使用url.hostnameします。

database_name提供された URL から取得するには、次を使用しpathます。

url.path[1:]

問題に取り組む別の「車輪を再発明しない」方法は、正規表現ベースsqlalachemyの 'sを使用することです。make_url()

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
于 2015-06-24T20:40:40.710 に答える
1

パスを 'database':url.path[1:] に変更するとうまくいきました。

于 2015-06-24T21:48:18.200 に答える