While working with Flask‘s SQLAlchemy extension I ran into the case where I wanted to obtain the host I was connected to combined with the username and password.
As I didn’t want to parse the URL I provided earlier to SQLAlchemy (and I didn’t have it available at that part of the code) I looked for a method to obtain it from SQLAlchemy.
It turns out this is not (or poorly) documented, but the Engine object has a attribute called url.
>>> db.engine.url mysql+mysqlconnector://sqlmanager:***@localhost/sqlmanager?charset=utf8 >>>
This is actually a sqlalchemy.engine.url.URL object which contains attributes with the connection information:
>>> url = db.engine.url >>> url.host 'localhost' >>> url.username 'sqlmanager' >>> url.password 'supersecretpassword' >>> url.database 'sqlmanager' >>>
This was the information I needed and allowed me to use this information elsewhere.