收藏 分销(赏)

第四单元第三课时软件的编写.docx

上传人:二*** 文档编号:4594639 上传时间:2024-09-30 格式:DOCX 页数:4 大小:18.38KB
下载 相关 举报
第四单元第三课时软件的编写.docx_第1页
第1页 / 共4页
本文档共4页,全文阅读请下载到手机保存,查看更方便
资源描述
第三课时软件的编写帐号 姓名 课前预习: 1、客户端以HTTP协议,诵过GET或者POST的形式提交数据。如/input?id=l&val=22.5,表示有参数,id的值=[,val的值=225 ( P133 ) 3、信息系统中的软件开发涉及服务器和客户端程序。逃_结构一般只写服务端程序, 浏览蚩就是客户端程序,使得音隋,更新更加容易;CZS结构服务器端和客户端程序 都要写课堂探究: 1、室内环境实时监测系统的运行过程: (1) : 1 , 2 , 3处分别智能终端,数据库,浏览器环境僵1> (2):网站功能页面规划表以及参数(假设服务器主机IP : 192.168.111.104 ,端口为80 )2、代码解读: 访问地址 功能说明 备注 http://192.168.111.104/ 主页,显示当前传感器数 据,并实时更新 获取传感器数据,返回当前 数据的情况。1为正常,0 为非正常 参数为id、val id表示设备号,val表 . 104/get?id=l 以json的格式,返回传感 器id=l的所有数据 http://192.168.111.104/view?id=1 显示id为1的传感器麴居 拆线图 扩展 (1):主页、取得并显示传感器信息(关键语句注释、学过语句填写) DATABASE = *data/data.db' app = Flask(_name_) @app.route(7") def hello(): db = sqlite3.connect(DATABASE)cur = db.cursor() #创建一个游标对像 cur.execute("SELECT * FROM sensorlog WHERE sensorid =1”) #查找传 感器设备ID值为]的所有记录data = cur.fetchallQ #读取游标cu的所有记录,并返回记录数据 cur.close() db.close()tempi = data[len(data) -1] #取得最后一条记录 temp=templ[2]#取得温度的值return render_template('view.html‘,data二data,tnmD=temD)#模版渲染 <html> vtitle>瑞安四中机房7室内环境监测系统</title> vhl align=”center”>瑞安四中机房室内环境监测系统</hl> <h2 align="center">当前室内温度:{{temp}} </h2> <h2 align=”center”>va href=7">刷新v/a>历史数据列表:</h2> <div id="center" style="border:2px solid #96c2fl"> 温度记录时间vbr> {% for i in data[::-l] %}{{i⑵}}{{i[3]}} <br/> {% endfor %} </div> </html> (2) 7获取传感器数据并返回当前值是否在正常范围内 @app.route(7input"zmethods=[,POST,z,GET']) def add_data(): if request.method == 'POST': #如果提交模式为 POST sensorid = intCrequest.form.qetCid')) sensorvalue= float(reguestform.get('val')) else: sensorid = intfrequest.args.qetfid1)) sensorvalue= float(request.arqs.qetCvar)) nowtime = datetime.datetime.now() #取得当前时间 nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S') #日期的格式化为字符串 db = sq I ite3. con nect( DAT ABASE) cur = db.cursor() cur.executeC'INSERT INTO sensorlog(sensorid,sensorvalue,updatetime) VALUES(%dz%fz'%s')" %(sensorid,sensorvalue,nowtime)) mit。 #以上程序的功能为:取得id和val的值并插入到表sensorlog中 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 and sensorvalue < minrv: #超出阈值范围返回方法,请改错 return '1' else: return 'O' (3) :智能终端:向服务器路由提交数据并返回相应的值 from microbit import * import Obloq import music ^="192.168.111.104" #WEB 服务器 IP PORT=,,8Q " #WEB 服务器端口 SSID=" jf 1M #WI-FI 的 SSID PASSWORD=,,123456 78n #WI-FI 的密码 uart.init(baudrate=9600z bits=8, parity=None, stop=l, tx=pin2, rx=pinl) #串口通讯初始化 while Obloq.connectWifi(SSID,PASSWORD,10000) != True: # 连接中 display.show("..") display.scroll(Obloq.ifconfig()) #连接成功后显示 IP 地址 Obloq.httpConfig(IPzPORT) # 连接 WEB 服务器上的端口 while True: t=str(temDerature())#最得自带温度传感器温度值(填空) putstr="input?val="+t+'&id=r #提交 URL 地址,id errnozresp=Obloq.get(putstr,10000) #通过Obloq的get方法向服务器提交,最大超时10秒 if errno == 200: #正常提交返回的代码display.scroll(resp) #滚动显示返回的信息 if resp=='l': music.freq(20000,10000)#长音报警else: music.freq(20000z 100)短音 else: display.scroll(str(errno)) #滚动显示返回提交出错的返回的代码 sleeD(1000*5) #延时 5 秒(4):返回JSON格式代码写法 a:JSON的四个函数 函数 描述 json.dumps 将Python对象编码成JSON字符串 json.loads 将已编码的JSON字符串解码为Python对象 json.load 从文件读取json信息并解码为Python对像 json.dump 将Python对象编码成JSON字符串并写进文件 1. py import json dictl = ("age": ”12”} jsonjnfo = json.dumps(dictl) #转换成 JSON 字符串 dict2 = json.loadsQsonjnfo) #转换成 Python 字典 2. py import json jsonjnfo = ('age': '12') file = open(,l.json'z,w'/encoding='utf-8,) json.dump(json_info,file) file.close() file = open(,l.json'/,r,,encoding='utf-8') info = json.load(file) print(info) file.close()b、代码:以json的格式,返回传感器id=l的所有数据 @app.route("/get"/methods=['GET']) #返回 json 格式 def get_data(): sensorid=int(request.args.get('id')) #取得 id 的值 db = sqlite3.connect(DATABASE) cur = db.cursor() cur.execute("SELECT * FROM sensorlog WHERE sensorid = %s” % sensorid) "sensorid":" I". 'value*:( I "sensorvalue":"29.0", ■updatetime":"2OI7-O5-27 23:00:34" }. { "sensorvalue":"22.1", "updatelime-:"2017-05-27 22:55:55" “sensorvalue":"23.2”, ',updateiime-:"2017-05-27 22:50:50" } 1 #从数据库sensorlog表中查询senserid字段的值等于变量sensorid的所有记录(填空) data = cur.fetchall() # dbsum=len(data) #所有记录的长度 dset=《sensorid':str(sensorid)} #字典的第一值 temp=[] for i in range(dbsum): value={) #空字典 value['sensorvalue']=data[i][2] value['updatetime']=data[i][3] temp.append(value) dset['value']=temp dison=json.dumDS(dset) #转存为json的字符串格式 return djson
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服