重启应用后能否保存数据?Python, Flet

0 投票
2 回答
63 浏览
提问于 2025-04-14 15:58

我做了一个待办事项的应用。在这个应用里,用户可以创建自己的新任务。但是,关闭应用后,并不是所有的任务都能保存下来。这样的问题能通过让每个用户注册或登录来保存数据吗?我该怎么解决这个问题?在网页上也有同样的问题。

我刚开始学编程,不知道该怎么改这个。

2 个回答

0

如果你想在退出或重启之前保存数据,没问题!你可以看看这个链接:https://flet.dev/docs/guides/python/client-storage

很简单:

# strings

page.client_storage.set("key", "value")

# numbers, booleans
page.client_storage.set("number.setting", 12345)
page.client_storage.set("bool_setting", True)

# lists
page.client_storage.set("favorite_colors", ["red", "green", "blue"])

不过有一点需要注意:

每个使用shared_preferences插件的Flutter应用都有自己的一套设置。因为同一个Flet客户端(其实就是一个Flutter应用)可以用来运行多个Flet应用,所以在一个Flet应用中存储的值对同一个用户的其他Flet应用也是可见的。

为了区分不同应用的设置,建议给所有存储的键加上独特的前缀,比如{公司}.{产品}。例如,如果你想在一个应用中存储认证令牌,可以用acme.one_app.auth_token这个键,而在另一个应用中则用acme.second_app.auth_token。

1

在应用程序中,你可以用一个 .txt 文件来存储数据。

或者,你可以创建另一个 Python 文件,这个文件里可以放一个大字典,里面记录用户的信息,可以叫做 users.py。当有人注册时,你只需要把这个人的名字加到字典里,这个账户就会有一个字符串列表,里面包含所有的待办事项。然后,当用户登录账户时,你就可以从这个列表中读取所有数据,并把它们显示在屏幕上。

另外一种选择是使用 JSON 文件,不过你需要导入 JSON 模块。

撰写回答