Sqlite—Python接口
#!/usr/bin/env python
# -*- coding:utf-8 -*- import sqlite3,os,time
import traceback class Sqlite():
db_file = None # 数据库文件
connection = None # 数据库连接对象 def __init__(self):
self.db_file = "/www/wwwroot/ding-server/db/test.db" # 获取数据库对象
def GetConn(self):
try:
if self.connection == None:
self.connection = sqlite3.connect(self.db_file)
self.connection.text_factory = str
except Exception as ex:
traceback.print_exc()
return "error: " + str(ex) # 增加任务
def insert(self, sql):
self.write_lock()
self.GetConn()
self.connection.text_factory = str
try:
result = self.connection.execute(sql)
id = result.lastrowid
self.connection.commit()
self.rm_lock()
return id
except Exception as ex:
return "error: " + str(ex) # 删除任务
def delete(self, sql):
self.write_lock()
self.GetConn()
try:
result = self.connection.execute(sql)
self.connection.commit()
self.rm_lock()
return result.rowcount
except Exception as ex:
return "error: " + str(ex) # 修改任务状态(完成/未完成)
def update(self, sql):
self.GetConn()
try:
result = self.connection.execute(sql)
self.connection.commit()
return result.rowcount
except Exception as ex:
return "error: " + str(ex) # 查询任务
def select(self, sql):
self.GetConn()
result = self.connection.execute(sql)
data = result.fetchall()
tmp = list(map(list,data)) # 元组转成列表
data = tmp
return data # 方式1:创建数据表
def create(self):
self.GetConn()
sql = '''create table if not exists tb_user(
ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);'''
try:
self.connection.execute(sql)
self.connection.commit()
self.connection.close()
except Exception as ex:
traceback.print_exc()
return "error: " + str(ex) # 方式2:创建数据表
def create_back(self):
self.GetConn()
try:
fr = open('/www/wwwroot/ding-server/db/task.sql', 'rb')
result = self.connection.executescript(fr.read())
fr.close()
self.connection.commit()
return True
except Exception as ex:
traceback.print_exc()
return False def writeFile(self,filename,s_body,mode='w+'):
try:
fp = open(filename, mode);
fp.write(s_body)
fp.close()
return True
except:
try:
fp = open(filename, mode,encoding="utf-8");
fp.write(s_body)
fp.close()
return True
except:
return False # 是否有锁
def is_lock(self):
n = 0
while os.path.exists(self.__LOCK):
n+=1
if n > 50:
self.rm_lock()
break
time.sleep(0.01) # 写锁
def write_lock(self):
self.is_lock()
self.writeFile(self.__LOCK,"True") # 解锁
def rm_lock(self):
if os.path.exists(self.__LOCK):
os.remove(self.__LOCK) if __name__ == '__main__':
obj = Sqlite()
# obj.GetConn() # 获取数据库连接,没有的话,就创建数据库
obj.create()
参考:https://www.runoob.com/sqlite/sqlite-python.html
参考:https://www.jianshu.com/p/5ff30df3ba6b
Sqlite—Python接口的更多相关文章
- SQLite - Python
SQLite - Python 安装 SQLite3 可使用 sqlite3 模块与 Python 进行集成.sqlite3 模块是由 Gerhard Haring 编写的.它提供了一个与 PEP 2 ...
- caffe的python接口学习(7):绘制loss和accuracy曲线
使用python接口来运行caffe程序,主要的原因是python非常容易可视化.所以不推荐大家在命令行下面运行python程序.如果非要在命令行下面运行,还不如直接用 c++算了. 推荐使用jupy ...
- Windows+Caffe+VS2013+python接口配置过程
前段时间在笔记本上配置了Caffe框架,中间过程曲曲折折,但由于懒没有将详细过程总结下来,这两天又在一台配置较高的台式机上配置了Caffe,配置时便非常后悔当初没有写到博客中去,现已配置好Caffe, ...
- 机器学习caffe环境搭建——redhat7.1和caffe的python接口编译
相信看这篇文章的都知道caffe是干嘛的了,无非就是深度学习.神经网络.计算机视觉.人工智能这些,这个我就不多介绍了,下面说说我的安装过程即遇到的问题,当然还有解决方法. 说下我的环境:1>虚拟 ...
- Caffe + Ubuntu 14.04 64bit + 无CUDA(linux下安装caffe(无cuda)以及python接口)
安装Caffe指导书 环境: Linux 64位 显卡为Intel + AMD,非英伟达显卡 无GPU 一. 安装准备工作 1. 以管理员身份登录 在左上角点击图标,搜索terminal(即终端),以 ...
- caffe的python接口学习(1):生成配置文件
caffe是C++语言写的,可能很多人不太熟悉,因此想用更简单的脚本语言来实现.caffe提供matlab接口和python接口,这两种语言就非常简单,而且非常容易进行可视化,使得学习更加快速,理解更 ...
- Caffe学习系列(11):数据可视化环境(python接口)配置
参考:http://www.cnblogs.com/denny402/p/5088399.html 这节配置python接口遇到了不少坑. 1.我是利用anaconda来配置python环境,在将ca ...
- caffe中python接口的使用
下面是基于我自己的接口,我是用来分类一维数据的,可能不具通用性: (前提,你已经编译了caffe的python的接口) 添加 caffe塻块的搜索路径,当我们import caffe时,可以找到. 对 ...
- Caffe学习系列(13):数据可视化环境(python接口)配置
caffe程序是由c++语言写的,本身是不带数据可视化功能的.只能借助其它的库或接口,如opencv, python或matlab.大部分人使用python接口来进行可视化,因为python出了个比较 ...
随机推荐
- 浏览器中的 Event Loop
当我们执行 JS 代码的时候其实就是往执行栈中放入函数,那么遇到异步代码的时候该怎么办?其实当遇到异步的代码时,会被挂起并在需要执行的时候加入到 Task(有多种 Task) 队列中.一旦执行栈为空, ...
- String s = "a";与String s = new String("a")的区别
String s1 = "a" 时,首先会在字符串常量池中查找有无 “a” 这个对象. 若没找到,就创建一个 "a" 对象, 然后,以 s1 为它的引用.若在字 ...
- builtins内建模块
builtins模块 为啥我们没有导入任何模块就能使用len(),str(),print()...等这么多的函数? 其实在我们运行python解释器的时候,他会自动导入一些模块,这些函数就是从这些地方 ...
- ThinkPHP 实现数据库事务回滚示例代码
ThinkPHP提供了数据库的事务支持,如果要在应用逻辑中使用事务,可以参考下面的方法: 启动事务: $User->startTrans(); 提交事务: $User->commit( ...
- php 7.4 的 Unpacking inside arrays (...)
总的说明 php 7.4 增加了一个很有意思的功能 这是官方说明: Unpacking inside arrays <?php$parts = ['apple', 'pear'];$fruits ...
- 页面嵌套iframe的时候引发的js交互问题
今天在做一个新页面的时候,用到了iframe这个东西.结果出现了一个有趣的问题.自己写的页面和iframe里边的页面属性和js有冲突.具体的点说就是层级出现了问题.不能正常显示.不管怎么修改,总是解决 ...
- 企业日常巡检shell脚本
Linux内部查看系统信息 $INTERNET192忽略 [root@ mysql-master ~]# ip a|grep eth0|grep inet|cut -d' ' -f6|cut -d'/ ...
- CSS+HTML实现移动端div左右滑动展示
由于手机屏幕的宽度有限,内容太多移动设备一行装不下的,所以很多移动端网站的导航栏都有左右滑动效果,下面我就用CSS+HTML实现移动端div左右滑动展示. CSS:box设置文本不换行,子元素box1 ...
- elementUI最新版的el-select使用filterable无效无法匹配正确搜索结果的Bug解决办法
Bug描述: 今天做开发时遇到一个elementUI存在的bug. 当el-select使用filterable功能搜索时,如果你恰巧使用的是微软拼音输入法,那么你有可能会遇到搜索结果和输入的值不匹配 ...
- java内存模型和内存结构
java内存模型说的是多线程,网上可能会有写误导,并不是什么堆.栈.方法区,很多人都会搞混.说白了就是多线程中主线程和本地线程之间的一个数据可见性问题. jmm:java内存模型:jvm:java内存 ...