如何获取tkcalendar.DateEntry组件中用户选择的日期?
问题解决:获取tkcalendar.DateEntry的日期并存入SQL
核心错误原因
你代码里的问题出在这一行:
self.dobentered = DateEntry(self.master,selectmode='day').grid(row=2,column=1)
grid()方法的返回值是None,所以self.dobentered实际是None,自然调用不了get_date()方法。必须把控件创建和布局排版拆分成两行代码。
修正后的代码示例
# 先创建DateEntry控件,赋值给self.dobentered self.dobentered = DateEntry(self.master, selectmode='day') # 再调用grid方法布局 self.dobentered.grid(row=2, column=1) # 现在可以正常获取日期了 # 获取datetime.date类型的日期对象(推荐,适合后续处理) selected_date = self.dobentered.get_date() # 转成YYYY-MM-DD格式的字符串(适合直接存入SQL) date_str = selected_date.strftime("%Y-%m-%d")
补充说明
get_date()返回的是标准的datetime.date对象,直接用这个类型和SQL数据库交互时,大部分Python的SQL库(比如sqlite3、psycopg2、SQLAlchemy)都能自动处理,不需要手动转字符串。- 如果确实需要字符串格式,用
strftime("%Y-%m-%d")就能得到你要的YYYY-MM-DD格式。
内容的提问来源于stack exchange,提问作者dexta
相关产品推荐
相关产品推荐

