注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

江志祥的博客

可恶的中国银行,信用卡像病毒啊,取消那么难,,,

 
 
 

日志

 
 

Python 之SQLite3  

2011-09-20 20:30:00|  分类: 计算机-Python |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

sqlite是一个c语言库,提供了一个轻量级的文件数据库解决方案。她不需要服务器支持,而且支持非标准的sql语句。

自python2.5之后sqlite被集成到了python标准库中。

 

一个使用sqlite3的例子:

 

  1. import sqlite3  
  2. conn=sqlite3.connect('example')  
  3. ##若想创建内存数据库,可以conn=sqlite3.connect(':memory:')  
  4. ##连接创建好后,再创建游标对象,执行他的execute()方法进行SQL语句执行  
  5. c=conn.cursor()  
  6. #create a table  
  7. c.execute('''''create table table1 
  8. (date text, trans text, symbol text, 
  9.  qty real, price real)''')  
  10. #insert a row of data  
  11. c.execute('''''insert into table1 
  12.           values ('2011-01-05','BUY','RHAT',100,35.14)''')  
  13. #save the changes  
  14. conn.commit()  
  15. #we can also close the cursor if we are done with it  
  16. c.close()  

 

通常使用SQL操作需要使用python变量。不能直接使用python字符串,因为这面临SQL注入的威胁。使用DB-API的参数来替代,在你 想用字符串的地方使用“?”作为一个占位符,然后提供一个元组值作为游标execute()方法的第二个参数(其他的数据库模块可能使用一个不同德占位 符,比如"%s" or ":1")。举个例子:

!!这样是危险的!!

  1. # Never do this -- insecure!  
  2. symbol = 'IBM'  
  3. c.execute("... where symbol = '%s'" % symbol)  

 

这样是符合要求的:

  1. # Do this instead  
  2. t = (symbol,)  
  3. c.execute('select * from stocks where symbol=?', t)  
  4. # Larger example  
  5. for t in [('2006-03-28''BUY''IBM'100045.00),  
  6.           ('2006-04-05''BUY''MSOFT'100072.00),  
  7.           ('2006-04-06''SELL''IBM'50053.00),  
  8.          ]:  
  9.     c.execute('insert into stocks values (?,?,?,?,?)', t)  
  评论这张
 
阅读(672)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018