priority_high

重要

这是一个实验性功能。实验性功能及其API可能会随时更改或删除。要了解更多信息,请点击这里

一个只读的、类似字典的对象,用于访问当前用户的信息。

st.experimental_user 依赖于运行 Streamlit 应用程序的主机平台。如果主机平台未配置该功能,它将像在本地运行的应用程序中一样运行。

属性可以通过键或属性符号访问。例如, st.experimental_user["email"]st.experimental_user.email

类描述[source]

st.experimental_user()

方法

获取用户信息作为字典。

属性

email (str)

如果在本地运行,此属性返回字符串字面量 "test@example.com"

如果在 Streamlit Community Cloud 上运行,此 属性返回以下两个值之一:

  • None 如果用户未登录或不是应用程序工作区的成员。此类用户在应用程序的分析中显示为匿名假名。
  • 用户的电子邮件,如果用户已登录并且是应用程序工作区的成员。此类用户在应用程序的分析中通过其电子邮件进行识别。

为用户个性化应用程序的能力是使您的应用程序更具吸引力的好方法。

它为开发者解锁了大量的使用场景,其中一些可能包括:为管理员显示额外的控制选项,可视化用户的Streamlit历史,个性化的股票行情,聊天机器人应用程序等等。我们非常期待看到您利用这一功能构建的内容!

这里有一个代码片段,展示了为管理员提供的额外按钮:

# Show extra buttons for admin users. ADMIN_USERS = { 'person1@email.com', 'person2@email.com', 'person3@email.com' } if st.experimental_user.email in ADMIN_USERS: display_the_extra_admin_buttons() display_the_interface_everyone_sees()

根据用户的电子邮件地址显示不同的内容:

# Show different content based on the user's email address. if st.experimental_user.email == 'jane@email.com': display_jane_content() elif st.experimental_user.email == 'adam@foocorp.io': display_adam_content() else: st.write("Please contact us to get access!")

用存储在数据库中的用户名来问候用户:

# Greet the user by their name. if st.experimental_user.email: # Get the user's name from the database. name = get_name_from_db(st.experimental_user.email) st.write('Hello, %s!' % name)

获取用户信息作为字典。

此方法主要用于内部使用,大多数情况下不需要使用。st.experimental_user 默认返回一个继承自 dict 的对象。

函数签名[source]

st.experimental_user.to_dict()

返回

(Dict[str,str])

当前用户信息的字典。

forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。