python - 如何从 database_url 解析 mysql 数据库名称

标签 python mysql database-connection urlparse

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:])

最佳答案

首先,url.host 会导致:

AttributeError: 'ParseResult' object has no attribute 'host'

改用url.hostname

要从提供的 URL 中获取 database_name,请使用 path:

url.path[1:]

解决该问题的另一种“不要重新发明轮子”方法是使用sqlalachemymake_url(),这是 regexp-based :

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

关于python - 如何从 database_url 解析 mysql 数据库名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31036453/

相关文章:

mysql - 移动服务器后出现错误 MyODBC 字段 'img_valid' 没有默认值

c++ - 如何在 Linux 上使用 C++ 连接到 Teradata

php - 带有 PHP 的远程 MySQL 服务器连接

python - 如何在不转换为列表的情况下替换 python 字符串中特定位置的字母?

PHP 自动删除我在标识字符串中需要的零

python - 使用 Paramiko 无法忽略 socket.timeout 错误

sql - 有什么方法可以在使用 MySQL 更新的一次查询中获取旧字段名称?

ruby - 使用 Ruby 连接到 Oracle 数据库

python - 尝试在 Python 中使用 Selenium 启动网页

python - 奥杜 : Acces a column from many2one