如何点击按钮后清空Flet Python文本框的值并存储到数据表?
Flet实现点击按钮清空文本框并存储数据到数据表
针对你的需求,我帮你修改了代码,实现点击按钮后验证文本框、存储数据、清空输入框的功能,同时用列表模拟数据表存储记录:
import flet as ft def main(page: ft.Page): # 初始化存储数据的列表,模拟数据表 data_records = [] # 定义文本框控件 sstid = ft.TextField(label="输入ID", hint_text="请输入要存储的ID") def btn_click(e): if not sstid.value.strip(): # 去除首尾空格后验证是否为空 sstid.error_text = "请输入有效内容" page.update() else: # 将数据存入模拟的数据表(列表) data_records.append({"sstid": sstid.value.strip()}) # 清空文本框 sstid.value = "" # 清除错误提示(如果有的话) sstid.error_text = None # 更新页面 page.update() # 可选:打印存储的数据,验证是否成功 print("当前存储的数据:", data_records) page.add( ft.Container( height=250, bgcolor="white10", border=ft.border.all(1, "#ebebeb"), border_radius=8, padding=15, content=ft.Column( expand=True, controls=[ sstid, # 添加文本框到页面 ft.ElevatedButton("添加", on_click=btn_click) ], ) ) ) if __name__ == "__main__": ft.app(target=main)
关键改动说明:
- 新增了
data_records列表作为模拟的数据表,用来存储每次提交的记录 - 添加了
sstid文本框控件,让用户可以输入内容 - 优化了空值验证逻辑,去除输入内容的首尾空格,避免空字符提交
- 存储数据后清空文本框,并清除错误提示,提升用户体验
- 补充了程序入口
if __name__ == "__main__",确保可以直接运行
如果需要对接真实数据库(比如SQLite、MySQL),只需要把data_records.append(...)的部分替换为对应的数据库插入语句即可。
内容的提问来源于stack exchange,提问作者Navrang
相关产品推荐
相关产品推荐

