版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第九章信息系统的搭建实例1.信息系统搭建的前期准备。(1)需求分析:包括目标期待、功能需求、性能需求、环境资源需求、用户界面需求、可拓展性需求。(2)可行性分析:主要从技术、经济、社会意义等方面分析系统的可行性。(3)开发模式选择:搭建系统一般可选择B/S或C/S两种模式中的一种(4)概要设计:包括模块设计、系统物理配置和数据库管理系统选择。(5)详细设计:包括输入设计、输出设计、人机界面设计、数据库设计、代码设计和安全设计。2.信息系统的搭建主要包括硬件搭建和软件模块选择或编写两方面。硬件是信息系统建立的基础,它的技术指标决定了信息系统的运行速度、可靠性、适用范围、可维护性等;3.信息系统的硬件主要包括:服务器、网络设备、传感设备、智能终端等。4.IoT模块主要有4个针脚,分别为Vcc(供电)、Gnd(接地)、Tx和Rx(数据传输接口)5.信息系统的软件开发一般包括数据管理设计(数据采集、数据传输、数据存储、数据呈现)、服务器端程序、客户端程序几个部分,自行开发应用程序。6.数据管理设计主要负责与具体数据管理系统衔接,包括数据采集、传输、存储、呈现等方面,为系统中需要长久存储的数据对象提供数据存储的方案7.客户端以HTTP的协议,通过GET或者POST的形式提交数据。GET请求是将参数直接展示在URL中,例如/input?id=1,POST请求并不将参数直接展示在URL中,例如/input8.JSON是一种轻量级的数据交换格式,它采用完全独立于语言的文本格式,易于阅读和编写,同时也易于机器解析和生成。9.SQL语句即非结构化查询语句。常见格式如下:假设需要创建如下数据表(图1.1):图1.1格式名样例说明createtablestudents(nametxt,areatext,idint)createtable数据表名(字段名1数据类型,.............)创建数据表Insertintostudents(name,area,id)values(“Lisi“,“hangzhou“,18)Insertinto数据表名(字段名)values(字段值)插入数据Deletefromstudentswhereid=1Deletefrom数据表名where条件根据条件删除Updatestudentssetname=”王五”whereid=1Update数据表名set需要修改的内容where条件根据条件修改Select*fromstudentswhereid=1Select*from数据表名where条件根据条件查询所有字段数据Selectnamefromstudentswhereid=1Select需要显示的字段名from数据表名where条件根据条件查询某个字段数据表1.110.Flask的数据库操作查询Importsqllite3=>sqllite3.connect()=>cur=db.cursor()=>cur.execute(sql)=>cur.fetchall()=>cur.close()=>db.close()增、删、改Importsqllite3=>sqllite3.connect()=>cur=db.cursor=>cur.execute(sql)=>mit()=>cur.close()=>db.close()表1.211.系统测试的目的是把测试结果与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,及时加以修正。信息系统测试包括软件测试、硬件测试和网络测试。软件测试测试方法说明备注正确性证明只能发现程序错误,但不能证明程序无错纸面推算、不关注格式是否正确静态测试主要对程序的编程格式和结构等方面进行评估只关注格式是否正确动态测试运行被测的程序,输入相应的测试数据,检查实际输出结果和预期结果是否相符只关注代码是否能正常运行硬件测试初验测试、系统测试/网络测试初验测试、系统测试/表1.312.信息系统的文档,是系统建设过程的原始资料,是系统出现故障后维护人员的指南。13.信息系统的文档类型繁多,分类方法也有很多种。①按信息系统的阶段不同,可以分为:系统规划阶段的文档,如系统设计任务书和项目开发计划等;系统分析阶段的文档,如系统分析说明书等;系统设计阶段的文档,如系统设计说明书等;系统实施阶段的文档,如程序设计报告、系统测试报告和开发总结报告等;系统运行与维护阶段的文档,如用户手册、操作手册与维护修改建议书等。②按文档不同的服务目的,可以将信息系统的文档分为三类:用户文档、开发文档与管理文档。用户文档主要是为用户服务的,开发文档主要是为开发人员服务的,管理文档主要是为项目管理人员服务的。14.Flask代码详解(1)Flask代码解析#coding=UTF-8importsqlite3#导入SQLite3模块importdatetime#导入时间模块fromflaskimportFlask,render_template,requestDATABASE='data/data.db'#数据库文件地址app=Flask(_name_)@app.route("/")#路由函数,格式:@app.route(路径,methods=["post","get"]),methods参数不写默认为GET请求defhello():#视图函数,与路由函数成对出现db=sqlite3.connect(DATABASE)#链接数据库cur=db.cursor()#获取数据库游标cur.execute("SELECT*FROMsensorlogWHEREsensorid=1")#执行数据库语句data=cur.fetchall()#获取数据库返回结果(查询数据调用该方法)cur.close()#关闭数据库游标db.close()#关闭数据库链接templ=data[len(data)-1]temp=temp1[2]returnrender_template('vews.html',data=data,temp=temp)#跳转到网页,传入两个参数,第一个参数为需要跳转的页面路径,后面的参数为向页面传的参数#Addingdata@app.route("/input",methods=["POST","GET"])defadd_data():ifrequest.method=='POST':#request.method:获取请求方法sensorid=int(request.form.get('id"))#flask获取post请求发送的参数的方法:request.form.get(参数名)sensorvalue=float(request.form.get('val'))else:sensorid=int(request.args.get('id'))#flask获取get请求发送的参数的方法:request.args.get(参数名)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("INSERTINTOsensorlog(sensorid,sensorvalue,updatetime)VALUES(%d,%f,'%s')"%(sensorid,sensorvalue,nowtime))#执行数据库语句mit()#提交数据(增删改数据调用该方法)cur.execute("SELECT*FROMsensorlistwheresensorid=%d"%sensorid)rv=cur.fetchall()#执行数据库语句cur.close()#关闭数据库游标db.close()#关闭数据库链接maxrv=rv[0][2]minrv=rv[0][3]ifsensorvalue>maxrvorsensorvalue<minrv:return'0'else:return'1'if_name__=="_main__":app.run(host="",port=8080,debug=True)#启动函数,host为服务器IP地址,port为端口号,debug参数为True即打开调试模式,False表示关闭调试模式html代码<body><metahttp-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><!--网页标题--><hlalign="center">室内环境实时监测系统</h1><h2align="center">当前室内温度:{{temp}}</h2><h2align="center"><ahref="/">刷新</a>历史数据列表:</h2><divid="center"style="border:2pxsolid#96c2f1">温度记录时间<br><!--此处的data即本篇(1)处中代码{render_template('vews.html,data=data,temp=temp)}中的data-->{%foriindata[:-1]%}{{i[2]}}{{i[3]}}<br><!--输出结果需要在结果前套{{}}-->{%endfor%}</div>(3)Micro:bit访问Url,micro:bit程序代码实现。micro:bit先通过串口配置Wi-Fi模块,然后采集温度传感器数值,拼接为一个URL地址,如01:8080/input?id=1&val=22.5。每隔5秒钟访问这个URL一次,若返回为0,则让蜂鸣器发出声音frommicrobitimport*importObloq#Lm35接在pinOIP="01"#IP地址PORT="8080"#端口号SSID="jf"#Wifi名PASSWORD="pkq88888"#Wifi密码uart.init(baudrate=115200,bits=8,parity=None,stop=1,tx=pin1,rx=pin2)#通过串口链接,tx链在pin1,rx链接在pin2【教科书上有误,此处勘正】whileObloq.connectWifi(SSID,PASSWORD,10000)!=True:#链接wifi,10秒内没有链接成功,就提示失败display.show(".")#显示...display.scroll(Obloq.ifconfig())Obloq.httpSet(IP,PORT)#循环滚动链接信息whileTrue:errno,resp=Obloq.get("input?id=1&val="+str(pinO.read_analog()),10000)#以get请求形式请求URL,10秒内没有链接成功,就提示失败iferrno==200:#200表示请求成功display.scroll(resp)else:display.scroll(str(erno))sleep(1000*5)#暂停5秒flask中从数据库中获取数据返回的结果为【二维数组】例如有数据表uaidnamepwd1ZhangSan1234562LiSi123123表ua...................以上代码省略...................cur.execute("SELECT*FROMua")rv=cur.fetchall()...................以下代码省略...................rv的结果为:[[1,”ZhangSan”,”123456”],[2,”LiSi”,”123
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 度沙子运输合同范本
- 工地施工钢筋班组承包合同
- 游泳馆劳务承包合同常用范本
- 门面租赁合同简易范本
- 销售人员提成合同
- 物业管理的合作与协同
- 外籍人员雇佣合同
- 甲基转移酶SUV39H2促进前列腺癌增殖、侵袭和转移的机制研究
- 家具定制合约三篇
- 考虑两类冲击的退化系统的预防维修策略研究
- 人工智能大模型
- 极简统计学(中文版)
- 2024年资格考试-对外汉语教师资格证笔试参考题库含答案
- 2024年4月自考02382管理信息系统答案及评分参考
- (苏版)初三化学上册:第2单元课题1空气
- 2023年12月广东珠海市轨道交通局公开招聘工作人员1人笔试近6年高频考题难、易错点荟萃答案带详解附后
- 腹腔镜肾上腺肿瘤切除术查房护理课件
- 专题23平抛运动临界问题相遇问题类平抛运和斜抛运动
- 超声科医德医风制度内容
- 高三开学收心班会课件
- 蒸汽换算计算表
评论
0/150
提交评论