该项目是一个基于 Flask 的农业监控系统后端,旨在提供农业数据的采集、预测和用户管理功能。通过该系统,用户可以上传农业数据进行预测。其前端为:mmdxiaoxin/Agricultural: 使用了Greek-admin模板进行搭建的农业监控系统。 (github.com)
主要特点和功能包括:
- 使用 Flask 框架搭建,支持 RESTful API。
- 集成了 Flask-CORS 插件,解决跨域访问问题。
- 使用 SQLAlchemy 进行数据库操作。
- 包含了设备、用户、预测等模块,提供了相应的路由处理。
- 实现了模型选择和预测方法选择的功能,用户可以通过接口更改模型和预测方法。
- 支持用户的注册、登录,以及用户上传文件进行预测的功能。
以下为接口文档内容
- URL:
/login
- 请求方法: POST
- 请求参数:
username
(string): 用户名password
(string): 密码
- 响应:
code
(int): 响应状态码,200 表示成功,500 表示失败data
(object): 返回数据,包含access_token
字段message
(string): 响应信息
- URL:
/register
- 请求方法: POST
- 请求参数:
username
(string): 用户名password
(string): 密码
- 响应:
code
(int): 响应状态码,200 表示成功,500 表示失败message
(string): 响应信息
- URL:
/logout
- 请求方法: POST
- 响应:
code
(int): 响应状态码,200 表示成功message
(string): 响应信息
- URL:
/user/import
- 请求方法: POST
- 响应:
code
(int): 响应状态码,200 表示成功message
(string): 响应信息
- URL:
/user/export
- 请求方法: POST
- 响应:
code
(int): 响应状态码,200 表示成功message
(string): 响应信息
- URL:
/menu/list
- 请求方法: GET
- 请求头:
X-Access-Token
(string): 访问令牌
- 响应:
code
(int): 响应状态码,200 表示成功,401 表示未授权data
(object): 返回数据,包含菜单列表信息message
(string): 响应信息
-
URL:
/user/deviceList
-
请求方法: GET
-
响应:
-
code
(int): 响应状态码,200 表示成功,500 表示失败 -
data
(list): 设备列表
-
id
(str): 站点或设备 ID -
name
(str): 站点或设备名称 -
isSite
(bool): 是否为站点 -
children
(list): 子设备列表,每个元素包含以下字段
id
(str): 设备 IDname
(str): 设备名称isDevice
(bool): 是否为设备
-
-
message
(string): 响应信息
-
-
URL:
/address/select
-
请求方法: GET
-
响应:
-
code
(int): 响应状态码,200 表示成功,500 表示失败 -
data
(list): 地址列表,每个元素包含以下字段
id
(int): 地址 IDname
(str): 地址名称
-
message
(string): 响应信息
-
-
URL:
/device/count
-
请求方法: GET
-
响应:
-
code
(int): 响应状态码,200 表示成功,500 表示失败 -
data
(object): 仪表盘数据
-
deviceCount
(int): 设备总数 -
totalDeviceDataCount
(int): 总数据条数 -
siteCount
(int): 站点总数 -
siteValues
(list): 站点数据列表,每个元素包含以下字段
name
(str): 站点名称value
(int): 设备数据条数
-
-
message
(string): 响应信息
-
-
URL:
/device/select
-
请求方法: GET
-
请求参数:
address_id
(int): 地址 ID
-
响应:
-
code
(int): 响应状态码,200 表示成功,500 表示失败 -
data
(list): 设备列表,每个元素包含以下字段
id
(int): 设备 IDdevice_name
(str): 设备名称business_id
(str): 业务 IDdevice_id
(str): 设备 IDcollect_run
(str): 数据采集运行状态
-
message
(string): 响应信息
-
- URL:
/data/show
- 请求方法: GET
- 请求参数:
deviceId
(int): 设备 IDhour
(int): 小时数,默认为 12columns
(string): 用户指定的列,逗号分隔
- 响应:
code
(int): 响应状态码,200 表示成功,500 表示失败data
(list): 数据列表,每个元素为字典,包含请求的列数据message
(string): 响应信息
- URL:
/device/api
- 请求方法: GET
- 请求参数:
id
(int): 设备 IDmethod
(str): API 方法名
- 响应:
- 根据请求的 API 方法返回相应数据,具体格式由 API 决定。
-
URL:
/predict/predict-method
-
请求方法: POST
-
请求参数:
method
(int): 预测方法编号
-
请求体示例:
{ "method": 0 }
-
响应:
code
(int): 响应状态码,200 表示成功,400 表示请求错误msg
(string): 响应消息
-
URL:
/predict/models
-
请求方法: POST
-
请求参数:
model
(int): 模型编号
-
请求体示例:
{ "model": 0 }
-
响应:
code
(int): 响应状态码,200 表示成功,400 表示请求错误msg
(string): 响应消息
-
URL:
/predict/upload-file
-
请求方法: POST
-
请求参数:
input_image
(file): 输入图像文件
-
响应:
-
code
(int): 响应状态码,200 表示成功,400 表示请求错误 -
data
(object): 预测结果数据
-
predictions
(list): 预测结果列表,每个元素包含以下字段
value
(float): 预测结果概率值name
(string): 预测结果类别名称
-
-
msg
(string): 响应消息
-