运行 streamlit 时如何在地址栏中显示 URL?

Posted

技术标签:

【中文标题】运行 streamlit 时如何在地址栏中显示 URL?【英文标题】:How does one display a URL in the address bar when running streamlit? 【发布时间】:2022-01-11 23:37:53 【问题描述】:

假设我有一个网站名称。假设我将 DNS 配置为将该网站定向到特定 IP 地址(云资源)。

接下来,我在云资源上运行我的 linux 开发的 streamlit 应用程序,并使用我的 PC 浏览器导航到该应用程序。

一切都很好,一切正常,我能够在 Windows 中利用我的 linux 代码(耶),但我还没有准备好与其他人分享这个网站。

尴尬的是,我的原始 IPAddress 和端口在访问流光内容时显示在浏览器的 URL 中。

streamlit 似乎在显示 IP 地址时非常顽固,因为我已将 nginx 配置为显示我的网站名称,但无济于事。


在不深入研究的情况下,有没有简单的方法来配置streamlit 以显示一些字符串信息或网站名称,而不是在“您的连接不安全”锁定符号旁边显示裸 IP 123.208.000:8502

【问题讨论】:

【参考方案1】:

在我的 nginx conf 中,我有以下几行:

server 
    absolute_redirect off;
    listen 80 default_server;
    server_name my.domain.name.com;

    if ($http_x_forwarded_proto = "http") 
        return 301 https://my.domain.name.com$request_uri;
    

    location /my-streamlit-dashboard 
        proxy_pass http://127.0.0.1:8501/my-streamlit-dashboard;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $host;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_read_timeout 86400;
    

然后,我使用以下命令运行我的 Streamlit 应用程序:

streamlit run my_app.py --server.port 8501 --server.baseUrlPath /my-streamlit-dashboard/ --server.enableCORS false --server.enableXsrfProtection false

就我而言,该应用程序可通过以下方式访问:https://my.domain.name.com/my-streamlit-dashboard/。

【讨论】:

以上是关于运行 streamlit 时如何在地址栏中显示 URL?的主要内容,如果未能解决你的问题,请参考以下文章

应用程序运行时如何在状态栏中显示图标,包括在后台?

如何使用带有 Streamlit 的按钮显示文件夹中的图像?

Streamlit:如何控制第二个实例并访问本地托管的服务?

如何使用python在streamlit应用程序中打开atoti链接?

如何在streamlit上运行视频?

如何使用streamlit和python根据数据框中的字段数添加列