python与tkinter_python与tkinter编程
Q1:Python 中用 Tkinter GUI编程
可以使用sqlite,下面是使用方法。
导入PythonSQLITE数据库模块
Python2.5之后,内置了SQLite3,成为了内置模块,这给我们省了安装的功夫,只需导入即可~
importsqlite3
2.创建/打开数据库
在调用connect函数的时候,指定库名称,如果指定的数据库存在就直接打开这个数据库,如果不存在就新创建一个再打开。
cx=sqlite3.connect("E:/test.db")
也可以创建数据库在内存中。
con=sqlite3.connect(":memory:")
3.数据库连接对象
打开数据库时返回的对象cx就是一个数据库连接对象,它可以有以下操作:
commit()--事务提交
rollback()--事务回滚
close()--关闭一个数据库连接
cursor()--创建一个游标
关于commit(),如果isolation_level隔离级别默认,那么每次对数据库的操作,都需要使用该命令,你也可以设置isolation_level=None,这样就变为自动提交模式。
4.使用游标查询数据库
我们需要使用游标对象SQL语句查询数据库,获得查询对象。通过以下方法来定义一个游标。
cu=cx.cursor()
游标对象有以下的操作:
execute()--执行sql语句
executemany--执行多条sql语句
close()--关闭游标
fetchone()--从结果中取一条记录,并将游标指向下一条记录
fetchmany()--从结果中取多条记录
fetchall()--从结果中取出所有记录
scroll()--游标滚动
1.建表
cu.execute("createtablecatalog(idintegerprimarykey,pidinteger,namevarchar(10)UNIQUE,nicknametextNULL)")
上面语句创建了一个叫catalog的表,它有一个主键id,一个pid,和一个name,name是不可以重复的,以及一个nickname默认为NULL。
2.插入数据
请注意避免以下写法:
#Neverdothis--insecure会导致注入攻击
pid=200
c.execute("...wherepid=%s"%pid)
正确的做法如下,如果t只是单个数值,也要采用t=(n,)的形式,因为元组是不可变的。
fortin[(0,10,abc,Yu),(1,20,cba,Xu)]:
cx.execute("insertintocatalogvalues(?,?,?,?)",t)
简单的插入两行数据,不过需要提醒的是,只有提交了之后,才能生效.我们使用数据库连接对象cx来进行提交commit和回滚rollback操作.
cx.commit()
3.查询
cu.execute("select*fromcatalog")
要提取查询到的数据,使用游标的fetch函数,如:
In[10]:cu.fetchall()
Out[10]:[(0,10,uabc,uYu),(1,20,ucba,uXu)]
如果我们使用cu.fetchone(),则首先返回列表中的第一项,再次使用,则返回第二项,依次下去.
4.修改
In[12]:cu.execute("updatecatalogsethref="#" name=Boywhereid=0")
In[13]:cx.commit()
注意,修改数据以后提交
5.删除
cu.execute("deletefromcatalogwhereid=1")
cx.commit()
6.使用中文
请先确定你的IDE或者系统默认编码是utf-8,并且在中文前加上u
x=u鱼
cu.execute("updatecatalogsethref="#" name=?whereid=0",x)
cu.execute("select*fromcatalog")
cu.fetchall()
[(0,10,u鱼,uYu),(1,20,ucba,uXu)]
如果要显示出中文字体,那需要依次打印出每个字符串
In[26]:foritemincu.fetchall():
....:forelementinitem:
....:printelement,
....:
010鱼Yu
120cbaXu
7.Row类型
Row提供了基于索引和基于名字大小写敏感的方式来访问列而几乎没有内存开销。原文如下:
sqlite3.Rowprovidesbothindex-basedandcase-insensitivename-basedaccesstocolumnswithalmostnomemoryoverhead.Itwillprobablybebetterthanyourowncustomdictionary-basedapproachorevenadb_rowbasedsolution.
Row对象的详细介绍
classsqlite3.Row
ARowinstanceservesasahighlyoptimizedrow_factoryforConnectionobjects.Ittriestomimicatupleinmostofitsfeatures.
Itsupportsmappingaccessbycolumnnameandindex,iteration,representation,equalitytestingandlen().
IftwoRowobjectshaveexactlythesamecolumnsandtheirmembersareequal,theycompareequal.
Changedinversion2.6:Addediterationandequality(hashability).
keys()
Thismethodreturnsatupleofcolumnnames.Immediatelyafteraquery,itisthefirstmemberofeachtupleinCursor.description.
Newinversion2.6.
下面举例说明
In[30]:cx.row_factory=sqlite3.Row
In[31]:c=cx.cursor()
In[32]:c.execute(select*fromcatalog)
Out[32]:
In[33]:r=c.fetchone()
In[34]:type(r)
Out[34]:
In[35]:r
Out[35]:
In[36]:printr
(0,10,u鱼,uYu)
In[37]:len(r)
Out[37]:4
In[39]:r[2]#使用索引查询
Out[39]:u鱼
In[41]:r.keys()
Out[41]:[id,pid,name,nickname]
In[42]:foreinr:
....:printe,
....:
010鱼Yu
使用列的关键词查询
In[43]:r[id]
Out[43]:0
In[44]:r[name]
Out[44]:u鱼
www☆.zDyAn.com
python与tkinter_python与tkinter编程相关推荐
- python没有tkinter_Python升级提示Tkinter模块找不到的解决方法
一.安装tkinter在Linux中python默认是不安装Tkinter模块, [root@li250-193 ~]# python Python 2.6.6 (r266:84292, Feb 22 ...
- python gui tkinter_Python GUI tkinter 学习笔记(一)
第一个python程序 #!/usr/bin/python # -*- coding: UTF-8 -*- #在2.x版本上,编写为:from Tkinter import * #在3.x版本上,编写 ...
- python gui模板_Python GUI 编程(Tkinter) | 菜鸟教程
Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...
- python tkinter 表格_python学习笔记(Tkinter编程利用Treeview实现表格自动更新)
博主今天总结这段时间抽空写的一个GUI编程项目 功能是查看本地打印机队列,可选择指定队列重新打印 直接上图 UI设计包括3个区域左上方,右上方和下方列表区域 使用网格grid方法来分配位置 下面是界面 ...
- python界面颜色-给Python点颜色——青少年学编程
书名:给Python点颜色--青少年学编程 定价:59.8 ISBN:9787115512321 作者:佘友军 版次:第1版 出版时间:2019-09 内容提要: 面对科技驱动的未来,编程是学生们茁壮 ...
- 用python写helloworld_Python基于Tkinter的HelloWorld入门实例
Python基于Tkinter的HelloWorld入门实例 本文实例讲述了Python基于Tkinter的HelloWorld入门实例.分享给大家供大家参考.具体分析如下: 初学Python,打算做 ...
- 【Python模块】图形化编程模块-turtle
Turtle,也称海龟渲染器,是 Python 内置的图形化模块,它使用 tkinter 实现基本图形界面,因此 当前使用的 Python 环境需要支持 tkinter. Turtle 提供了面向对象 ...
- Python用opencv实现动态识别二维码,以及加强版Python GUI(图像用户界面编程)
前言 关于动态识别二维码信息,利用电脑摄像头动态扫描二维码,扫描视频中的二维码. 简易程序 import cv2 pip install opencv-pythondef start():captur ...
- python tkinter计算器实例_使用Python自带GUI tkinter编写一个期权价格计算器
0 准备工作 首先,确认环境中有numpy.scipy.stats和tkinter三个功能包.前两个功能包可用于Python的数学计算,比如使用numpy来生成随机数用于Monte Carlo模拟,以 ...
最新文章
- 第六章 深度学习(上)
- REM中的几种发料方式
- CodeForces - 681D Gifts by the List(思维)
- java 支付类的接口,Java后端支付大杂烩之core.dao,service,web(重点是接口的设计)(二)...
- Android 退出登陆后,清空之前所有的activity,进入登陆主界面
- 【sping揭秘】18、使用spring访问数据
- python写扫雷脚本_利用Python实现自动扫雷小脚本
- sql 删除重复数据 只留一条
- VBS中实现99乘法表的输出
- Linux网络参数DD,linux tcpdump命令参数及用法详解--linux下抓包网络分析
- 网络打印机 显示服务器脱机,网络打印机老是脱机怎么回事_网络打印机显示脱机的处理办法...
- TPS、RPS和QPS是什么
- DOS命令diskpart格式化磁盘
- C语言电码,翻译莫尔斯电码
- 2013年字库产业感悟及资料书单
- Linux下输入子系统上报触摸屏坐标
- 蓝牙第一章:概述、无线技术协议和基带协议
- 【无标题】HTML做一个简单漂亮的宠物网页(纯html代码)宠物 5页(二级菜单)
- 高性能数据库引擎 CoolHash 产品宣言 Fourinone4.0版新特性(转)
- 2017高考计算机试卷,2017年高考模拟试卷 信息技术卷.doc
热门文章
- Android 5.0+(RecycleView、CardView、Palette)
- 【效率技巧】利用TI计算器的程序映射功能 kbdprgm1()~9() 简化GTC程序调试操作
- mooon db wrapper
- 用友重拳出击 布局BI剑指何处?
- GNU C getopt()、getopt_long() 与 getopt_long_only() 获取命令行参数
- javascript date utc
- import和class关键字的区别
- C#代码生成目录树(转)
- javascript学习笔记(十九) 节点的操作
- LeetCode刷题开源手册