diff options
| author | 韩丁康 <[email protected]> | 2023-10-21 18:07:30 +0800 |
|---|---|---|
| committer | 韩丁康 <[email protected]> | 2023-10-21 18:07:30 +0800 |
| commit | 5c768cdc45e1e883dbc78d4f82391de0fba646e0 (patch) | |
| tree | 714da045f38163d2a68928a616a6dc5a64ebdf79 | |
| parent | 42b45ab513941cfce69cafd06047c9a0950e5f41 (diff) | |
实现delay接口集合
| -rw-r--r-- | app.py | 26 | ||||
| -rw-r--r-- | apps/datacheck.py | 4 | ||||
| -rw-r--r-- | apps/delay.py | 53 |
3 files changed, 71 insertions, 12 deletions
@@ -1,10 +1,12 @@ -from flask import Flask,request +from apiflask import APIFlask,Schema,PaginationSchema +from apiflask.fields import List,Nested +from flask import request from apps.datacheck import bp as checkbp -from apps.delay import bp as delaybp +from apps.delay import bp as delaybp,TestNode import pandas as pd # 注册蓝图 -app = Flask(__name__) +app = APIFlask(__name__) app.register_blueprint(checkbp) app.register_blueprint(delaybp) @@ -13,13 +15,23 @@ app.register_blueprint(delaybp) def hello_world(): # put application's code here return 'Hello World!' +class AllNode(Schema): + nodes=List(Nested(TestNode)) # 获取所有节点的信息 [email protected]('/allnode',methods=['GET']) [email protected]('/allnode') [email protected](AllNode) def nodeinfo(): df = pd.read_csv("./server.csv", encoding="utf-8") - print(df) - return "hello" + ans=[] + for index,row in df.iterrows(): + ans.append({ + 'Id':row['id'], + 'Name':row['name'], + 'Ip' : row['ip'], + 'Cou' : row['cou'], + 'Port' :row['port']}) + return {'nodes':ans} if __name__ == '__main__': - app.run(debug=True,port=2525) + app.run(host="0.0.0.0",debug=True,port=2525) diff --git a/apps/datacheck.py b/apps/datacheck.py index f2f3244..436f866 100644 --- a/apps/datacheck.py +++ b/apps/datacheck.py @@ -1,7 +1,7 @@ # DNS记录测试接口 -from flask import Flask,Blueprint +from apiflask import APIFlask,APIBlueprint -bp=Blueprint("check",__name__,url_prefix="/check") +bp=APIBlueprint("check",__name__,url_prefix="/check") @bp.route("/test") def hello(): diff --git a/apps/delay.py b/apps/delay.py index 61fe284..5fb2cc8 100644 --- a/apps/delay.py +++ b/apps/delay.py @@ -1,12 +1,59 @@ # 时延测试接口 -from flask import Flask,Blueprint,request - -bp=Blueprint("delay",__name__,url_prefix="/delay") +import random +from apiflask.validators import OneOf +from apiflask import APIFlask,APIBlueprint,Schema +from apiflask.fields import Integer,String,List,Nested +from flask import request +import pandas as pd + +bp=APIBlueprint("delay",__name__,url_prefix="/delay") + +class TestNode(Schema): + Id = Integer() + Name=String() + Ip=String() + Cou=String() + Port=Integer() + +class Delay(Schema): + Id=Integer() + Delay=Integer() + Type=String() +class DelayOut(Schema): + delay_data=List(Nested(Delay)) @bp.route("/test") def hello(): return "hello" [email protected]("/<string:type>") [email protected]("获取每个节点的时延数据","type参数为{icmp,dns,tcp}中的一个") [email protected](DelayOut) +def get_pernode_delay(type): + ans = [] + if type=="icmp": + df=pd.read_csv("./server.csv",encoding="utf-8") + for index,row in df.iterrows(): + ans.append({ + 'Id':row['id'], + 'Delay':random.randint(1,1000), + 'Type':type}) + if type=="tcp": + df=pd.read_csv("./server.csv",encoding="utf-8") + for index,row in df.iterrows(): + ans.append({ + 'Id':row['id'], + 'Delay':random.randint(1,1000), + 'Type':type}) + if type=="dns": + df=pd.read_csv("./server.csv",encoding="utf-8") + for index,row in df.iterrows(): + ans.append({ + 'Id':row['id'], + 'Delay':random.randint(1,1000), + 'Type':type}) + return {'delay_data':ans} + |
