重启应用后能否保存数据?Python, Flet
我做了一个待办事项的应用。在这个应用里,用户可以创建自己的新任务。但是,关闭应用后,并不是所有的任务都能保存下来。这样的问题能通过让每个用户注册或登录来保存数据吗?我该怎么解决这个问题?在网页上也有同样的问题。
我刚开始学编程,不知道该怎么改这个。
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 模块。