我正在编写一个在数据库中插入和检索电影信息的小程序。如果我手动将信息输入到.db文件中,程序将检索它并在GUI的文本框中完美显示。但是,如果我尝试将这些文本框中的数据插入到我的数据库中,它会在每个字段的末尾添加一个换行符。当我再次检索它时,它最后有“\ n”。检索效果很好,但不知何故,我的插入内容包含了换行符。这是我的插入功能:
def addRecord(self):
newTitle = self.text_title.get(1.0, 'end')
newSynopsis = self.text_summary.get(1.0, 'end')
newCast = self.text_cast.get(1.0, 'end')
newRuntime = self.text_runtime.get(1.0, 'end')
newRating = self.text_rating.get(1.0, 'end')
newTrailer = self.text_trailer.get(1.0, 'end')
newDates = self.text_date2d.get(1.0, 'end')
newImage = self.text_image.get(1.0, 'end')
c.execute("INSERT INTO Movies (Title, Synopsis, Actors, Runtime, Rating, Trailer, Dates, Image) VALUES ('{}','{}','{}','{}','{}','{}','{}','{}');"
.format(newTitle, newSynopsis, newCast, newRuntime, newRating, newTrailer, newDates, newImage))
conn.commit()
答案 0 :(得分:2)
Tkinter会自动添加换行符作为文本小部件中的最后一个字符。只获取您或用户插入的文本小部件内容的正确方法应使用"end-1c"
(“结束”减去一个字符),而不是"end"
或END
。
另外,要迂腐,第一个索引应该是字符串,而不是浮点数。在1.0
的情况下它并不重要,但你应该养成在文本小部件中始终使用字符串作为索引的习惯。
例如:
newTitle = self.text_title.get("1.0", 'end-1c')