物联网平台Node-red初涉——访问搭建的简易服务器

最近,基于python的flask框架,搭建了一个简易的本地服务器。目前,可以通过浏览器访问服务器,并查看或传递数据。

一、搭建服务器

基于flask框架搭建服务器的代码如下:

from flask import Flask, request, render_template
import json

app = 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格式模板。

二、创建html文件

需要在PyCharm中,创建一个myhtml.html文件(myhtml是文件名,可以随便命名)。上述通过flask搭建服务器的程序写在了atvi.py里,如下图所示。(其余.py文件跟本例无关,可忽略)
在这里插入图片描述
myhtml.html代码如下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
      x坐标:   {{circles_x}}
<hr/>
      y坐标:   {{circles_y}}
<hr/>
      <form action="/shezhi" method="POST">
          当前设定距离: {{valuedist}}<br/>
          <input type="text" name="setdist">
          <input type="submit" value="设置"><br/>
          {{msg}}
      </form>
</body>
</html>

三、启动服务器

上述工作完成之后,直接run atvi.py即可。跑起来之后会显示下图中的情况。
在这里插入图片描述

四、通过浏览器访问

打开浏览器,输入http://127.0.0.1:5000/shezhi 显示如下图所示。
在这里插入图片描述
这就实现了浏览器访问服务器的过程。

五、Node-red访问服务器

这里目前就不科普如何搭建和配置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了解并不深入,仅有一些浅薄的知识。写这篇博文主要是进行一些记录和梳理(记忆力有限,担心自己会忘)。若有什么错误或者更好的思路,还请评论批评指正(抱拳)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值