Python程序设计基础(第十三章 GUI编程 第十四章 数据库编程 练习记录)

继续上次的练习

GUI编程

本章讨论使用Python的tkinter模块设计GUI应用程序的基本方法,包括标签、按钮、输入域、单选按钮、复选框、列表框和对话框等基本控件,还学习了GUI应用程序中事件的工作方式以及如何编写回调函数来处理事件。本章包括对Canvas控件的讨论,以及如何使用它来绘制直线、矩形、椭圆、弧、多边形和文本。

#1名称和地址
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.main_window.title("My GUI")
        self.value=tkinter.StringVar()
        self.button1=tkinter.Button(self.main_window,text="Show Info",command=self.show_info,width=20)
        self.button2=tkinter.Button(self.main_window,text="Quit",command=self.main_window.destroy,width=20)
        self.label=tkinter.Label(self.main_window,textvariable=self.value,height=10,width=50)
        self.label.pack()
        self.button1.pack(side="left",padx=20,pady=5)
        self.button2.pack(side="right",padx=20,pady=5)


        tkinter.mainloop()
    def show_info(self):
        self.value.set("Steven Marcus\n274 Baily Drive\nWaynesville, NC 27999")
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#2拉丁文翻译
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.main_window.title("My GUI")
        self.value1=tkinter.StringVar()
        self.frame1=tkinter.Frame(self.main_window)
        self.label1=tkinter.Label(self.frame1,text="sinister",width=20)
        self.button1=tkinter.Button(self.frame1,text="translation",command=self.word1,width=20)
        self.label11=tkinter.Label(self.frame1,textvariable=self.value1,width=20)
        self.label1.pack(side='left')
        self.button1.pack(side='left')
        self.label11.pack(side='left')

        self.value2 = tkinter.StringVar()
        self.frame2 = tkinter.Frame(self.main_window)
        self.label2 = tkinter.Label(self.frame2, text="dexter", width=20)
        self.button2 = tkinter.Button(self.frame2, text="translation", command=self.word2, width=20)
        self.label22 = tkinter.Label(self.frame2, textvariable=self.value2, width=20)
        self.label2.pack(side='left')
        self.button2.pack(side='left')
        self.label22.pack(side='left')

        self.value3 = tkinter.StringVar()
        self.frame3 = tkinter.Frame(self.main_window)
        self.label3 = tkinter.Label(self.frame3, text="dexter", width=20)
        self.button3 = tkinter.Button(self.frame3, text="translation", command=self.word3, width=20)
        self.label33 = tkinter.Label(self.frame3, textvariable=self.value3, width=20)
        self.label3.pack(side='left')
        self.button3.pack(side='left')
        self.label33.pack(side='left')
        self.frame1.pack(side='top')
        self.frame2.pack(side='top')
        self.frame3.pack(side='top')
        tkinter.mainloop()
    def word1(self):
        self.value1.set("left")
    def word2(self):
        self.value2.set("right")
    def word3(self):
        self.value3.set("center")
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#3每加仑英里计算器
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.main_window.title("My GUI")
        self.frame1=tkinter.Frame(self.main_window)
        self.frame2=tkinter.Frame(self.main_window)
        self.frame3=tkinter.Frame(self.main_window)
        self.label1=tkinter.Label(self.frame1,text="Fuel tank volume(gallon):",width=50)
        self.entry1=tkinter.Entry(self.frame1,width=10)
        self.label1.pack(side='left')
        self.entry1.pack(side='left')

        self.label2=tkinter.Label(self.frame2,text="Mileage driven after topping up(miles):",width=50)
        self.entry2=tkinter.Entry(self.frame2,width=10)
        self.label2.pack(side='left')
        self.entry2.pack(side='left')

        self.value=tkinter.StringVar()
        self.button=tkinter.Button(self.frame3,text="Calculate MGP",width=20,command=self.calculate)
        self.label3=tkinter.Label(self.frame3,text='MPG:',width=5)
        self.label33=tkinter.Label(self.frame3,textvariable=self.value,width=30)
        self.button.pack(side='left')
        self.label3.pack(side='left')
        self.label33.pack(side='left')

        self.frame1.pack(side='top')
        self.frame2.pack(side='top')
        self.frame3.pack(side='top')
        self.main_window.mainloop()
    def calculate(self):
        res=str(float(self.entry2.get())/float(self.entry1.get()))
        self.value.set(res)
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#4摄氏度转换为华氏温度
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.main_window.title("My GUI")
        self.frame1=tkinter.Frame(self.main_window)
        self.frame2=tkinter.Frame(self.main_window)
        self.label1=tkinter.Label(self.frame1,text="Celsius temperature:",width=20)
        self.entry1=tkinter.Entry(self.frame1,width=10)
        self.label1.pack(side='left')
        self.entry1.pack(side='left')

        self.value = tkinter.StringVar()
        self.label2=tkinter.Label(self.frame2,text="Fahrenheit:",width=20)
        self.button = tkinter.Button(self.frame2, text="Calculate", width=10, command=self.calculate)
        self.label22 = tkinter.Label(self.frame2, textvariable=self.value, width=20)
        self.label2.pack(side='left')
        self.button.pack(side='left')
        self.label22.pack(side='left')

        self.frame1.pack(side='top')
        self.frame2.pack(side='top')
        self.main_window.mainloop()
    def calculate(self):
        res=str(float(self.entry1.get())*9/5+32)
        self.value.set(res)
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#5物业税
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.frame1=tkinter.Frame(self.main_window)
        self.label_top=tkinter.Label(self.frame1,text="Real value of the property:",width=30)
        self.entry=tkinter.Entry(self.frame1,width=10)
        self.label_top.pack(side='left')
        self.entry.pack(side='left')
        self.button=tkinter.Button(self.main_window,text="Calculate",command=self.calculate,width=20)

        self.frame2=tkinter.Frame(self.main_window)
        self.value1=tkinter.StringVar()
        self.mid_label=tkinter.Label(self.frame2,text="Appraisal value:",width=30)
        self.mid_label2=tkinter.Label(self.frame2,textvariable=self.value1,width=10)
        self.mid_label.pack(side='left')
        self.mid_label2.pack(side='left')

        self.frame3 = tkinter.Frame(self.main_window)
        self.value2 = tkinter.StringVar()
        self.bottom_label = tkinter.Label(self.frame3, text="Property tax:", width=30)
        self.bottom_label2 = tkinter.Label(self.frame3, textvariable=self.value2, width=10)
        self.bottom_label.pack(side='left')
        self.bottom_label2.pack(side='left')

        self.frame1.pack(side='top')
        self.button.pack(side='top')
        self.frame2.pack(side='top')
        self.frame3.pack(side='top')
        self.main_window.mainloop()
    def calculate(self):
        try:
            x = float(self.entry.get())
            self.value1.set( str(x * 0.6))
            self.value2.set( str(x / 100 * 0.75))
        except ValueError:
            pass
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#6乔的汽车
import tkinter
import tkinter.messagebox
class MyGUI:
    def __init__(self):
        self.lis_num=7
        self.lis_str=('Change oil','Lube oil operation','Radiator flushing','Transmission flushing',
                      'Check','Muffler replacement','Tire rotation')
        self.lis_cost=(30,20,40,100,35,200,20)
        self.main_window=tkinter.Tk()
        self.top_label=tkinter.Label(self.main_window,text="Routine maintenance service",width=40)
        self.frame1=tkinter.Frame(self.main_window)
        self.cbvar=[]
        for i in range(self.lis_num):
            self.cbvar.append(tkinter.IntVar())
            self.cbvar[i].set(0)
        self.cbs=[]
        for i in range(self.lis_num):
            self.cbs.append(tkinter.Checkbutton(self.frame1,text=self.lis_str[i],variable=self.cbvar[i]))
            self.cbs[i].pack()
        self.button=tkinter.Button(self.main_window,text="Calculate",width=20,command=self.calculate)
        self.top_label.pack(side='top')
        self.frame1.pack(side='top')
        self.button.pack(side='top')
        self.main_window.mainloop()
    def calculate(self):
        total=0
        for i in range(self.lis_num):
            if self.cbvar[i].get()==1:
               total+=self.lis_cost[i]
        tkinter.messagebox.showinfo('Cost','$'+str(total))

def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#7长途电话
import tkinter
import tkinter.messagebox
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.num=3
        self.str=('Daytime:6:00 a.m-5.59 p.m(US$0.07 per minute)',
                  'Night:6:00 p.m-11:59 p.m(US$0.12 per minute)',
                  'Off peak::0:00 a.m-5:59 a.m(US$0.05 per minute)')
        self.cost=(0.07,0.12,0.05)
        self.frame=tkinter.Frame(self.main_window)
        self.rd_var=tkinter.IntVar()
        self.rd_var.set(0)
        self.rb=[]
        for i in range(self.num):
            self.rb.append(tkinter.Radiobutton(self.frame,text=self.str[i],variable=self.rd_var,value=i))
            self.rb[i].pack()
        self.frame2=tkinter.Frame(self.main_window)
        self.label=tkinter.Label(self.frame2,text="Call duration(minute):",width=20)
        self.entry=tkinter.Entry(self.frame2,width=10)
        self.label.pack(side='left')
        self.entry.pack(side='left')
        self.button=tkinter.Button(self.main_window,text='Calculate',width=10,command=self.calculate)
        self.frame.pack()
        self.frame2.pack()
        self.button.pack()
        self.main_window.mainloop()
    def calculate(self):
        x=float(self.entry.get())*float(self.cost[self.rd_var.get()])
        tkinter.messagebox.showinfo('Cost','$'+str(f'{x:0.2f}'))
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#8绘制房屋
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.canvas=tkinter.Canvas(self.main_window,width=600,height=600)
        point_profile=[50,200,
               450,200,
               450,500,
               50,500,
               50,200,
               100,150,
               400,150,
               450,200
               ]
        point_window=[100,250,150,250,150,300,100,300,100,250]
        point_window2=[350,250,400,250,400,300,350,300,350,250]
        point_door=[160,500,240,500,240,420,160,420,160,500]
        point_sun=[500,50,550,100]
        self.canvas.create_line(point_profile)
        self.canvas.create_line(point_window)
        self.canvas.create_line(point_window2)
        self.canvas.create_line(point_door)
        self.canvas.create_oval(point_sun,fill='red')
        self.canvas.pack()
        self.main_window.mainloop()
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#9树龄
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.canvas=tkinter.Canvas(self.main_window,width=600,height=600)
        nums=[]
        x1=100;y1=100
        x2=500;y2=500
        for i in range(5):
            temp=[]
            temp.append(x1+i*20)
            temp.append(y1+i*20)
            temp.append(x2-i*20)
            temp.append(y2-i*20)
            nums.append(temp)
        for i in range(5):
            self.canvas.create_oval(nums[i])
            self.canvas.create_text(nums[i][0]*2,nums[i][1],text=str(i+1)+'year')
        self.canvas.pack()
        self.main_window.mainloop()
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#10好莱坞明星
import tkinter
from math import pi,cos,sin
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.canvas=tkinter.Canvas(self.main_window,width=600,height=600)
        x=300;y=100
        l=100
        point_star=[x,y,
                    x-l*cos(0.4*pi),y+l*sin(0.4*pi),
                    x - l * cos(0.4*pi)-l, y + l * sin(0.4*pi),
                    x - l * cos(0.4 * pi) - l+l*cos(0.2*pi), y + l * sin(0.4 * pi)+l*sin(0.2*pi),
                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi), y + l * sin(0.4 * pi) + l * sin(0.2 * pi),
                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi)-l*sin(0.1*pi), y + l * sin(0.4 * pi) + l * sin(0.2 * pi)+l*cos(0.1*pi),   #Point 6
                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi)*2 - l * sin(0.1 * pi),y + l * sin(0.4 * pi)  + l * cos(0.1 * pi),
                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi) * 3 - l * sin(0.1 * pi),
                    y + l * sin(0.4 * pi) + l * cos(0.1 * pi)+l*sin(0.2*pi),

                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi) * 3 - 2*l * sin(0.1 * pi),
                    y + l * sin(0.4 * pi)  + l * sin(0.2 * pi),

                    x - l * cos(0.4 * pi) - l + l * cos(0.2 * pi) * 4 - 2 * l * sin(0.1 * pi),y + l * sin(0.4 * pi),
                    x - l * cos(0.4 * pi) - 2*l + l * cos(0.2 * pi) * 4 - 2 * l * sin(0.1 * pi), y + l * sin(0.4 * pi),
                    x,y
                    ]
        self.canvas.create_text(x,2*y,text='Tom')
        self.canvas.create_line(point_star)
        self.canvas.pack()
        self.main_window.mainloop()
def main():
    my=MyGUI()
if __name__=="__main__":
    main()
#11交通工具绘制
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.canvas=tkinter.Canvas(self.main_window,width=600,height=600)
        x=50;y=300
        points=[x,y,
                x+50,y-50,
                x+200,y-50,
                x+300,y-150,
                x+400,y-150,
                x+300,y-50,
                x+400,y-50,
                x+400,y,
                x+300,y,
                x+200,y+100,
                x+100,y+100,
                x+200,y,
                x,y
        ]
        self.canvas.create_line(points)
        self.canvas.pack()
        self.main_window.mainloop()
if __name__=="__main__":
    mygui=MyGUI()
#12太阳系
import tkinter
class MyGUI:
    def __init__(self):
        self.main_window=tkinter.Tk()
        self.canvas=tkinter.Canvas(self.main_window,width=800,height=600)
        self.canvas.create_oval(0,200,200,400,fill='red',outline='yellow')
        self.canvas.create_text(100,300,text='Sun')
        self.canvas.create_oval(210,290,230,310,fill='bisque')
        self.canvas.create_text(220,300,text='Mercury')
        self.canvas.create_oval(240,280,280,320,fill='gold')
        self.canvas.create_text(260,300,text='Venus')
        self.canvas.create_oval(290,280,330,320,fill='blue')
        self.canvas.create_text(295,325,text='Earth')
        self.canvas.create_oval(340,290,360,310,fill='peru')
        self.canvas.create_text(350,310,text='Mars')
        self.canvas.create_oval(370,250,470,350,fill='orange')
        self.canvas.create_text(420,300,text='Jupiter')

        self.canvas.create_oval(480,260,560,340,fill='wheat')
        self.canvas.create_oval(475,255,565,345)
        self.canvas.create_text(530,300,text='Saturn')
        self.canvas.create_oval(570,265,640,335,fill='cyan')
        self.canvas.create_text(605,300,text='Uranus')
        self.canvas.create_oval(650,265,720,335,fill='dodgerblue')
        self.canvas.create_text(685,300,text='Neptune')
        self.canvas.create_oval(730,290,750,310,fill='slategray')
        self.canvas.create_text(740,310,text='Pluto')
        self.canvas.pack()
        self.main_window.mainloop()
if __name__=="__main__":
    mygui=MyGUI()

数据库编程

本章介绍数据库编程。首先介绍数据库的基本概念,如表、行、主键等。然后学习使用SQLite在Python中连接数据库。接下来介绍SQL以及如何执行查询和语句来搜索行、添加新行、更新现有行和删除行。最后演示CRUD应用程序,讨论了关系数据。

#2电话号码簿数据库
import sqlite3
class MyDB:
    def __init__(self):
        try:
            self.conn = sqlite3.connect('phonebook.db')
            self.cur = self.conn.cursor()
            sql = '''CREATE TABLE IF NOT EXISTS Entries(Tel_number TEXT PRIMARY KEY NOT NULL,
                                                            Name TEXT NOT NULL)'''
            self.cur.execute(sql)
        except sqlite3.OperationalError:
            pass

        self.processing()
        self.conn.close()
    def processing(self):
        x=1
        while x!=0:
            x=self.menu()
            if x==1:    self.add()
            elif x==2:  self.query()
            elif x==3: self.edit()
            elif x==4: self.delete()
            self.conn.commit()
    def add(self):
        tel_num=input("Please enter the tel number:")
        name=input("Please enter contact name:")
        sql='''INSERT INTO Entries(Tel_number,Name)
        VALUES(?,?)'''
        self.cur.execute(sql,(tel_num,name))
    def query(self):
        while True:
            try:
                x = int(input("Do you want to query by tel number(Enter 1) or by name(Enter 2):"))
                if 1<=x<=2: break
                else:    print("Please enter correct num!")
            except ValueError:
                print("Please enter correct num!")
        inf=input("Please enter responding information:")
        if x==1:
            sql='''SELECT Name FROM Entries WHERE Tel_number==?'''
        else:
            sql='''SELECT Tel_number FROM Entries WHERE Name==?'''
        self.cur.execute(sql, (inf,))
        result=self.cur.fetchall()
        if len(result)==0:
            print("No result!")
        else:
            for row in result:
                print(f'{row[0]:20}')
    def edit(self):
        tel=input("Please enter the tel number for editing")
        sql = '''SELECT Name FROM Entries WHERE Tel_number=?'''
        self.cur.execute(sql,(tel,))
        result=self.cur.fetchall()
        if len(result)==0:
            print("No person found")
        else:
            while True:
                try:
                    x=int(input("Do you want to edit tel number(Enter 1) or name(Enter 2):"))
                    if 1<=x<=2: break;
                    else:   print("Please enter correct num!")
                except ValueError:
                    print("Please enter correct num!")
            y=input("Please enter corresponding information:")
            if x==1:
                sql='''SELECT Name FROM Entries WHERE Tel_number=?'''
                self.cur.execute(sql,(y,))
                result=self.cur.fetchall()
                if len(result)==0:
                    sql='''UPDATE Entries SET Tel_number = ? WHERE Tel_number == ?'''
                    self.cur.execute(sql,(y,tel))
                else:   print("The tel number"+y+"is existing!")
            else:
                sql='''UPDATE Entries SET Name=? WHERE Tel_number == ?'''
                self.cur.execute(sql,(y,tel))
    def delete(self):
        tel=input("Please enter the tel number:")
        sql='''DELETE FROM Entries WHERE Tel_number == ?'''
        self.cur.execute(sql,(tel,))
        if self.cur.rowcount==0:
            print("No person found!")
        else: print("Delete successfully!")
    def menu(self):
        print("---------------")
        print("1:Add information line")
        print("2:Query someone's tel number")
        print("3:Edit someone's tel number")
        print("4:Delete particular information line")
        print("0:Exit")
        print("---------------")
        while True:
            try:
                x = int(input())
                if 0<=x<=4: return x
                else:   print("Please enter correct num!")
            except ValueError:
                print("Please enter correct num!")
def main():
    mydb=MyDB()
if __name__=="__main__":
    main()

因为本题涉及三个数据表的操作,因此分成了多个.py文件

1、创建数据库、数据表

# 3关系数据库项目大作业
import sqlite3
import menu
import major
import department
import student
class MyDB:
    def __init__(self):
        self.conn = sqlite3.connect('student_inf0.db')
        self.cur = self.conn.cursor()
        self.cur.execute('''CREATE TABLE IF NOT EXISTS Majors(
        MajorityID INTEGER PRIMARY KEY NOT NULL,
        Name TEXT
        )''')
        self.cur.execute('''CREATE TABLE IF NOT EXISTS Departments(
        DeptID INTEGER PRIMARY KEY NOT NULL,
        Name TEXT
        )''')
        self.cur.execute('''CREATE TABLE IF NOT EXISTS Students(
        StudentID INTEGER PRIMARY KEY NOT NULL,
        Name TEXT,
        FOREIGN KEY(MajorID) REFERENCES Majors(MajorityID),
        FOREIGN KEY(DeptID) REFERENCES Departments(DeptID)
        )''')

2、menu.py调用菜单(也可以结合前面的知识点,设计GUI界面)

def menu_for_database():
    while True:
        try:
            print("------")
            print("If you want to operate Table Majors      please enter 1:")
            print("If you want to operate Table Departments please enter 2:")
            print("If you want to operate Table Students    please enter 3:")
            print("If you want to exit process              please enter 0:")
            print("------")
            x = int(input())
            if 0 <= x <= 3:
                return x
            else:
                print("Please enter correct num!")
        except ValueError:
            print("Please enter correct num!")


def menu_for_table(n):
    act = ('Add a new ', 'Query a   ', 'Edit a    ', 'Delete a  ', 'List all  ', ' please enter ')
    tab_name = ('major', 'department', 'student')
    while True:
        try:
            print("------")
            i = 0
            while i < len(act) - 1:
                print(act[i] + tab_name[n - 1] + act[-1] + str(i + 1))
                i += 1
            print("------")
            x = int(input())
            if 1 <= x <= len(act) - 1:
                return x
            else:
                print("Please enter correct num!")
        except ValueError:
            print("Please enter correct num!")

3、major.py存放对Majors表的操作

def insert(cur, ID, name):
    sql = '''INSERT INTO Majors(MajorID,Name) VALUES(?,?)'''
    cur.execuate(sql, (ID, name))


def query_ID(cur, ID):
    sql = '''SELECT * FROM Majors WHERE MajorID==?'''
    cur.execuate(sql, (ID,))
    return cur.fetchall()


def query_name(cur, name):
    sql = '''SELECT * FROM Majors WHERE Name==?'''
    cur.execuate(sql, (name,))
    return cur.fetchall()


def edit(cur, res, id, choice):  # 1 表示修改ID,2 表示修改名字
    sql = ('''UPDATE Majors SET MajorID=? WHERE MajorID==?''',
           '''UPDATE Majors SET Name=?    WHERE MajorID==?''')
    if choice == 1:
        cur.execuate(sql[0], (res, id))
    else:
        cur.execuate(sql[1], (res, id))


def delete(cur, id):
    sql = '''DELETE FROM Majors WHERE MajorID==?'''
    cur.execuate(sql, (id,))


def lists(cur):
    sql = '''SELECT * FROM Majors'''
    cur.execuate(sql)
    return cur.fetchall()

4、department.py存放对Departments数据表的操作

def insert(cur, ID, name):
    sql = '''INSERT INTO Departments(DeptID,Name) VALUES(?,?)'''
    cur.execuate(sql, (ID, name))


def query_ID(cur, ID):
    sql = '''SELECT * FROM Departments WHERE DeptID==?'''
    cur.execuate(sql, (ID,))
    return cur.fetchall()


def query_name(cur, name):
    sql = '''SELECT * FROM Departments WHERE Name==?'''
    cur.execuate(sql, (name,))
    return cur.fetchall()


def edit(cur, res, id, choice):  # 1 表示修改ID,2 表示修改名字
    sql = ('''UPDATE Departments SET DeptID=? WHERE DeptID==?''',
           '''UPDATE Departments SET Name=?    WHERE DeptID==?''')
    if choice == 1:
        cur.execuate(sql[0], (res, id))
    else:
        cur.execuate(sql[1], (res, id))


def delete(cur, id):
    sql = '''DELETE FROM Departments WHERE DepartmentID==?'''
    cur.execuate(sql, (id,))


def lists(cur):
    sql = '''SELECT * FROM Department'''
    cur.execuate(sql)
    return cur.fetchall()

5、student.py存放对Students数据表的操作

def insert(cur, sID, name, mID, dID):
    sql = '''INSERT INTO Students(StudentID,Name,MajorID,DeptID) VALUES(?,?,?,?)'''
    cur.execuate(sql, (sID, name, mID, dID))


def query_sID(cur, sID):
    sql = '''SELECT * FROM Students WHERE StudentID==?'''
    cur.execuate(sql, (sID,))
    return cur.fetchall()


def query_name(cur, name):
    sql = '''SELECT * FROM Departments WHERE Name==?'''
    cur.execuate(sql, (name,))
    return cur.fetchall()


def query_mID(cur, mID):
    sql = '''SELECT * FROM Students WHERE MajorID==?'''
    cur.execuate(sql, (mID,))
    return cur.fetchall()


def query_dID(cur, dID):
    sql = '''SELECT * FROM Students WHERE DeptID==?'''
    cur.execuate(sql, (dID,))
    return cur.fetchall()


def edit(cur, res, id, choice):  # 1 表示修改ID,2 表示修改名字 3.表示修改主修课程ID 4.表示修改院系ID
    sql = ('''UPDATE Students SET DeptID=? WHERE DeptID==?''',
           '''UPDATE Students SET Name=?    WHERE DeptID==?''',
           '''UPDATE Students SET MajorID=?    WHERE DeptID==?''',
           '''UPDATE Students SET DeptID=?    WHERE DeptID==?''')
    cur.execuate(sql[choice - 1], (res, id))


def delete(cur, id):
    sql = '''DELETE FROM Students WHERE StudentID==?'''
    cur.execuate(sql, (id,))


def lists(cur):
    sql = '''SELECT * FROM Student'''
    cur.execuate(sql)
    return cur.fetchall()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值