URL redirect inside a button

Hey! How can I open the url in the same tab of the browser? webbrowser didn’t help, it always opens a new tab and google search confirmed it’s not possible I used to have a hyperlink which opened the url in the same window

st.write(f'''<h1>
Please login via <a target="_self"
href="{authorization_url}">Google</a></h1>''',
unsafe_allow_html=True)

But I want a button that triggers URL redirect

login = st.button('Log in')
if login:
  webbrowser.open(authorization_url)

I guess I could extract that redirect function from st.write above but I have no experience in html and this code isn’t mine haha

I need this to run google auth inside the app.

You can create a button manually. Unfortunately I couldn’t find a way to style the button persistently across Streamlit versions (class hashes change each version).

import streamlit as st

st.write(f'''
    <a target="_self" href="https://eox.at">
        <button>
            Please login via Google
        </button>
    </a>
    ''',
    unsafe_allow_html=True
)

Thank you! That’s what I was looking for.

But well, the button looks ugly indeed.

1 Like