本文共 2898 字,大约阅读时间需要 9 分钟。
最近,基于python的flask框架,搭建了一个简易的本地服务器。目前,可以通过浏览器访问服务器,并查看或传递数据。
基于flask框架搭建服务器的代码如下:
from flask import Flask, request, render_templateimport jsonapp = Flask(__name__)content = { }@app.route('/name', methods=['POST', 'GET'])def get_name(): ''' 处理客户端上传的JSON数据 :return: ''' #content = None global content if request.method == 'POST': content = request.get_json() #name = request.json.get('name') # get_data = request.args.to_dict() # name = get_data['name'] # content['name'] = name if content is None: print("当前无任何数据") else: print(content) # print(name) print(type(content)) return dict(name="123", fan="100") #return elif request.method == 'GET': #name = request.args.get('name', '') #name = request.json.get('name') # if request.args is not None: # get_data = request.args.to_dict() # name = get_data['name'] # content['name'] = name if content is not None: #print(name) print(content, type(content)) return content #content = request.get_json()#主要使用该路由,上个路由在本例中没用到,但是可以用于学习过程中调试使用。#app.route 就是设置路由的过程@app.route('/shezhi', methods=['POST', 'GET'])def set_dist(): canshu = { 'x': 50, 'y': 80} setdist = 50 #设置初始值 if request.args.get("setdist") is not None: setdist = request.args.get("setdist") if request.form.get("setdist") is not None: setdist = request.form.get("setdist") print(setdist) # if request.args is not None: # canshu['x'] = request.args.get("x") return render_template("myhtml.html", msg="设定成功", valuedist=setdist, circles_x=canshu['x'], circles_y=canshu['y'])if __name__ == "__main__": app.run(host='0.0.0.0', port=5000, debug=True)
其中,return render_template(“myhtml.html”, msg=“设定成功”, valuedist=setdist, circles_x=canshu[‘x’], circles_y=canshu[‘y’])主要是返回了一个html格式模板。
需要在PyCharm中,创建一个myhtml.html文件(myhtml是文件名,可以随便命名)。上述通过flask搭建服务器的程序写在了atvi.py里,如下图所示。(其余.py文件跟本例无关,可忽略)
myhtml.html代码如下Title x坐标: { {circles_x}}
y坐标: { {circles_y}}
上述工作完成之后,直接run atvi.py即可。跑起来之后会显示下图中的情况。
打开浏览器,输入http://127.0.0.1:5000/shezhi 显示如下图所示。
这就实现了浏览器访问服务器的过程。这里目前就不科普如何搭建和配置Node-red。网上有很多相关教程,按照教程配置即可。
第一步:打开cmd,输入node-red即可启动。如下图所示。 第二步:打开浏览器,输入http://127.0.0.1:1880/。进入到node-red搭建页面。找到并拖入相应的程序块。 第三步:双击Button进行配置,这个块感觉没有过多的配置。主要是在Payload处输入一个空格,防止乱码。 第四步:双击text input,将Delay(ms)改为0(默认值应该是300)。 第五步:双击http请求(http request)进行设置。 第六步:设置完成之后,点击部署。依次点击下图中三个圆圈。 第七步:进入到控制台中。输入任意数字后,点击BUTTON。结果可以在服务器端查看到print的数字。
以上就是整个实现过程。本人对于node-red了解并不深入,仅有一些浅薄的知识。写这篇博文主要是进行一些记录和梳理(记忆力有限,担心自己会忘)。若有什么错误或者更好的思路,还请评论批评指正(抱拳)。转载地址:http://gsfef.baihongyu.com/