第13章 数据库连接
- 将数据导入数据库
import sqlite3 def convert(value):#使用工具函数convert对各行进行分割并对各个字段进行转换 if value.startswith('~'): return value.strip('~') if not value: value='0' return float(value) conn=sqlite3.connect('food.db') curs=conn.cursor()#游标可以用来执行SQL查询 #插入sql语句 curs.execute(''' CREATE TABLE food( id TEXT PRIMARY KEY, desc TEXT, water FLOAT, kcal FLOAT, protein FLOAT, fat FLOAT, ash FLOAT ) ''') query ='INSERT INTO food VALUES(?,?,?,?,?,?,?)' field_count=7 for line in open('adc.txt'): fields=line.split('^') vals=[convert(f) for f in fields[:field_count]] curs.execute(query,vals) conn.commit()#提交事务 conn.close()
-
简单的GUI图形界面设计
from tkinter import * from tkinter.scrolledtext import ScrolledText def load(): with open(filename.get()) as file: contents.delete('1.0',END)#使用'1.0'来指定第1行的第0个字符,使用END来指定文本末尾 contents.insert(INSERT,file.read()) def save(): with open(filename.get(),'w') as file: file.write(contents.get('1.0',END)) top=Tk()#实例化一个对象作为主窗口的顶级组件 top.title("Simple Editor") contents=ScrolledText() contents.pack(side=BOTTOM,expand=True,fill=BOTH)#布局管理器pack帆帆发 告诉Tkinter将它放在什么地方 filename=Entry() filename.pack(side=LEFT,expand=True,fill=X) Button(text='Open',command=load).pack(side=LEFT) Button(text='Save',command=save).pack(side=LEFT) mainloop()#调用mainloop函数进入Tkinter主时间循环
-
数据库查询程序
import sqlite3,sys conn=sqlite3.connect('food.db') curs=conn.cursor() query='SELECT * FROM food WHERE '+sys.argv[1] print(query) curs.execute(query) names=[f[0] for f in curs.description] for row in curs.fetchall():#以序列的方式取回余下的所有行 for pair in zip(names,row): print('{}:{}'.format(*pair)) print()