小编Pau*_*ald的帖子

在sqlite3中使用外键用于Python

我正在编写一个通过python创建sqlite3数据库的程序.我有一个作者表(AuthorID,Name)和第二个书籍表(BookID,Title,AuthorID)我创建了这些表,如下所示:

Authors = sqlite3.connect('Authors.db')
Authors.execute('''CREATE TABLE Authors
       (AuthorID      INT  PRIMARY KEY, 
       Name           TEXT);''')
Authors.close()


Books = sqlite3.connect('Books.db')
Books.execute('''CREATE TABLE Books
       (BookID            INT  PRIMARY KEY, 
       Title              TEXT,
       AuthorID           INT,
       FOREIGN KEY(AuthorID) REFERENCES Authors(AuthorID));''')
Books.close()
Run Code Online (Sandbox Code Playgroud)

然后我去为每个表添加一条记录,如下所示:

Authors = sqlite3.connect('Authors.db') 
Authors.execute("INSERT INTO Authors (AuthorID, Name) \
        VALUES (1, 'Jane Austin')");

Authors.commit()
Authors.close()


Books = sqlite3.connect('Books.db')
Books.execute("INSERT INTO Books (BookID, Title, AuthorID) \
        VALUES (1, 'Emma', 1)");

Books.commit()
Books.close()
Run Code Online (Sandbox Code Playgroud)

数据库已正确更新,但我不认为外键正常工作,因为它允许我删除作者'Jane Austin',当有书籍相关时.

我看过一些教程使用这一行:

Books.execute("PRAGMA foreign_keys = 1")
Run Code Online (Sandbox Code Playgroud)

这是问题的答案吗?如果是这样,我该把这条线放在哪里?

python sqlite

8
推荐指数
2
解决办法
6004
查看次数

将命令添加到Tkinter OptionMenu?

我在Python 2.7.8中编写了一些包含OptionMenu小部件的代码.我想创建一个OptionMenu在更改选项时调用函数但我也希望在列表中找到可能的选项,因为我的最终OptionMenu将有很多选项.

我使用以下代码创建一个OptionMenu调用函数:

from Tkinter import*

def func(value):
    print(value)

root = Tk()

var = StringVar()
DropDownMenu=OptionMenu(root, var, "1", "2", "3", command=func)
DropDownMenu.place(x=10, y=10)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我还发现了以下代码,用于创建OptionMenu列表中的with选项:

from Tkinter import*

root = Tk()

Options=["1", "2", "3"]
var = StringVar()
DropDownMenu=apply(OptionMenu, (root, var) + tuple(Options))
DropDownMenu.place(x=10, y=10)

root.mainloop()
Run Code Online (Sandbox Code Playgroud)

我将如何创建一个OptionMenu调用时更改选项的功能,并从列表中获取可能的选项?

python tkinter optionmenu

2
推荐指数
1
解决办法
2万
查看次数

标签 统计

python ×2

optionmenu ×1

sqlite ×1

tkinter ×1