Проблема со страницей входа в Streamlit - PullRequest
0 голосов
/ 04 мая 2020

Недавно я пытался разработать простое веб-приложение, используя Streamlit. Я могу создать его легко и быстро, но у меня возникает проблема, когда я хочу создать страницу аутентификации или входа в систему, когда я пытаюсь развернуть ее в Heroku (бесплатный dyno). Сначала я думал, что это был успех, пока не понял, что веб-приложение продолжает перебирать все коды после взаимодействия с приложением. Затем я попытался применить subprocess, но я думаю, что из-за политики Heroku я не могу породить другого динамо.

Что я могу сделать, чтобы решить эту проблему?

Это то, что я сделал до сих пор:

import streamlit as st
import subprocess

def id_authenticated(username):
    return username == "******"

def pw_authenticated(password):
    return password == "*****"

def generate_login_block():
    block1 = st.empty()
    block2 = st.empty()
    block3 = st.empty()
    block4 = st.empty()
    return block1, block2, block3, block4

def clean_blocks(blocks):
    for block in blocks:
        block.empty()

def login(blocks):
    blocks[0].markdown("""
        <style>
            input {
                -webkit-text-security: none;
            }
        </style>
        """, unsafe_allow_html=True)

    blocks[0].markdown("""
        <style>
            input {
                -webkit-text-security: none;
            }
        </style>
        """, unsafe_allow_html=True)

    return blocks[1].text_input("Username:"), blocks[3].text_input('Password:', value = "", type = "password")

login_blocks = generate_login_block()
username, password = login(login_blocks)
login_button = st.button("Log In")


if login_button & id_authenticated(username) & pw_authenticated(password):
    st.success("You are logged in")
    subprocess.Popen(["streamlit", "run", "app.py"])
elif login_button:
    st.error("Please input valid username and/or password")

1 Ответ

0 голосов
/ 08 мая 2020

Для минимальной настройки аутентификации вы можете использовать код здесь

...