资源简介 #SQLite数据库基本操作import sqlite3#连接/创建数据库conn = sqlite3.connect("Sqlite/text.db")#创建游标cu = conn.cursor()#创建数据表(表名st)#create table <表名>(<字段名> <字段数据类型>,……)cu.execute('''create table st( ID int primary key not NULL, name text not NULL, age int not NULL, sex char(1) not NULL)''')conn.commit() #保存并提交到数据库#向数据库增加数据#insert into <表名> (字段1,字段2,……) valuse(值1,值2,……)cu.execute("insert into st(ID,name,age,sex) values(1,'Peter',15,'M')")cu.execute("insert into st(ID,name,age,sex) values(2,'Jim',16,'M')")cu.execute("insert into st(ID,name,age,sex) values(3,'Maray',14,'W')")cu.execute("insert into st(ID,name,age,sex) values(4,'Brent',17,'M')")conn.commit() #提交数据#查找#select <输出列1>,<输出列2> form <表名> where <筛选条件>s = cu.execute("select * from st")for i in s: print(i)s = cu.execute("select name,age from st")for i in s: print(i)s = cu.execute("select name,age from st where age>15")for i in s: print(i)#用fetchall() 获取游标结果,返回的是列表类型cu.execute("select name,age from st where age>=15")print(cu.fetchall())#删除语句#delete from <表名> where <筛选条件>cu.execute("delete from st where ID=1 ")conn.commit() #更新cu.close()conn.close()#室内环境检测系统flask代码import sqlite3 #导入 sqlite3 数据库import jsonfrom flask import Flask,render_template, requestDATABASE = "./flask_class4/data/data.db" #定义数据库路径app = Flask(__name__) #创建一个服务器实例@app.route("/")def hello(): db = sqlite3.connect(DATABASE) #连接数据库 data.db cur = db.cursor() #创建游标对象 cur.execute("SELECT * FROM sensorlog WHERE sensorid =1") #Execute方法用来执行sql语句,当sensorid=1, 从"sensorlog" 表中选取所在列 data = cur.fetchall() #查询所有数据 cur.close() #关闭游标,不自动提交保存。 db.close() #关闭数据库,不自动提交保存。 temp1 = data[len(data) - 1] #获取最新一行的数据,[ID,TIME,TEMP] temp = temp1[2] #获取温度 return render_template('vews1.html', data=data,temp=temp)#Get data@app.route("/get",methods=['GET']) #响应网页的 get 请求,返回实时温度def get_data(): sensorid=int(request.args.get('id')) #获取id值db = sqlite3.connect(DATABASE) #连接数据库 data.dbcur = db.cursor() #创建游标对象 cur.execute("SELECT * FROM sensorlog WHERE sensorid = %s"% sensorid)#Execute方法用来执行sql语句,当sensorid=1, 从"sensorlog" 表中选取所在列 data = cur.fetchall() #查询所有数据 dbsum=len(data) #所有数据的长度 dset={'sensorid':sensorid} #字典 temp=[] #空数组 for i in range(dbsum): #在该数据长度下轮询 value={} #空的字典 value['sensorvalue']=data[i][2] #当前i值的温度 value['updatetime']=data[i][3] #当前i值的时间 temp.append(value) #在temp对象末尾创建value值 #dset['value']={'sensorvalue':data[i-1][2],'updatetime':data[i-1][3]} dset['value']=temp #在该字典后面放入温度和时间 djson=json.dumps(dset)#把编码字典数据 return djson #返回所有数据#Adding data@app.route("/input",methods=['POST','GET']) #响应终端的 post和get 请求,获取实时温度def add_data(): if request.method == 'POST': sensorid = int(request.form.get('id')) sensorvalue = float(request.form.get('val')) else: sensorid = int(request.args.get('id')) sensorvalue = float(request.args.get('val')) nowtime = datetime.datetime.now() nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S') db = sqlite3.connect(DATABASE) cur = db.cursor()cur.execute("INSERT INTO sensorlog(sensorid,sensorvalue,updatetime) VALUES(%d,%f,'%s')" %(sensorid,sensorvalue,nowtime) ) mit() #事务提交,保存修改内容。 cur.execute("SELECT * FROM sensorlist where sensorid = %d"% sensorid) rv = cur.fetchall() cur.close() db.close() #关闭数据库,不自动提交保存。 maxrv = rv[0][2] minrv = rv[0][3] if sensorvalue > maxrv or sensorvalue < minrv: return '1' else: return '0'if __name__ == "__main__": app.run(host="0.0.0.0", port=8080,threaded=True) #绑定 Web 服务器的 IP 和端口#室内环境检测系统html代码室内环境监测系统室内环境监测系统当前室内温度:`temp` 刷新历史数据列表: 温度 记录时间 {% for i in data[::-1] %} {{i[2]}} {{i[3]}} {% endfor %}提交数据:/input id=1&val=255获取数据:/get id=1 展开更多...... 收起↑ 资源预览