|课件下载
搜索
    上传资料 赚现金
    第四章sqlite数据库和室内环境检测系统代码 素材 浙教版(2019) 信息技术必修二信息系统与社会
    立即下载
    加入资料篮
    第四章sqlite数据库和室内环境检测系统代码 素材     浙教版(2019) 信息技术必修二信息系统与社会01
    第四章sqlite数据库和室内环境检测系统代码 素材     浙教版(2019) 信息技术必修二信息系统与社会02
    还剩2页未读, 继续阅读
    下载需要10学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    第四章sqlite数据库和室内环境检测系统代码 素材 浙教版(2019) 信息技术必修二信息系统与社会

    展开

    #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 json

    from flask import Flask,render_template, request  

     

    DATABASE = "./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.db

    cur = 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']) #响应终端的 postget 请求,获取实时温度

    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) )

        db.commit()          #事务提交,保存修改内容。

        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代码

    <!doctype html>

    <body><meta http-equiv="refresh" content="60"></body>

    <style>

    #center{ MARGIN-RIGHT: auto;MARGIN-LEFT: auto;background:#eff7ff;width:600px;

        height:500px;vertical-align:left;overflow-y:scroll; overflow-x:scroll}

    </style>

    <title>室内环境监测系统</title>

    <h1 align="center">室内环境监测系统</h1>

    <h2 align="center">当前室内温度:{{temp}} </h2>

    <h2 align="center"><a href="/">刷新</a>历史数据列表:</h2>

    <div >

      温度    记录时间<br>

      {% for i in data[::-1] %}

           {{i[2]}}    {{i[3]}} <br>

      {% endfor %}

    </div>

    <br>

    <div align="center" >提交数据:<a href="/input?id=1&val=255">/input?id=1&val=255</a><br>获取数据:<a href="/get?id=1">/get?id=1</a></div>

     

     

     

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        返回
        顶部
        Baidu
        map