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
)
1 Like

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

But well, the button looks ugly indeed.

1 Like

Did it work for you ? It works on local but do we need install anything on the server when we deploy the app.

webbrowser.open(authorization_url)

你好,想请教一下,webbrowser.open(url)在win环境可以跳转到新的tab页,但是在linux环境下无法使用,请问有什么解决的办法吗?