2016-11-29 8 views
0

Учитывая структуру строки подключения к базе данных (например, вы можете найти here), как лучше всего разобрать реальную строку URI и получить свой компонент, как пользователь, пароль, имя базы данных и хост?Разбор строки подключения к базе данных в python

Большое спасибо

ответ

1

Регулярное выражение (в зависимости от специфический синтаксис) !?

Например:

m = re.match('mysql://(.*?):(.*?)@(.*?)/(.*)', url) 

должна дать вам пользователя, пароль, имя хоста и базы данных в группах 1 до 4:

print(m.groups()) 

Или в одной строке:

user, password, host, database = re.match('mysql://(.*?):(.*?)@(.*?)/(.*)', url).groups() 
+0

в том случае, когда принятый ответ не самый лучший;) – maxkoryukov

6

Существует библиотека Python для этого:

+1

[urlparse] (https://docs.python.org/2.7/library/urlparse.html?highlight=urlparse#urlparse.urlparse) для Python 2 –

+0

@RobinKoch, если вы не возражаете, - я добавит эту ссылку к ответу – maxkoryukov

2

Для python 2 вы можете использовать urlparse:

from urlparse import urlparse 

r = urlparse('mysql://alex:[email protected]/test') 
print(r.username) 
# 'alex' 
print(r.password) 
# 'pwd'