Flask基本用法:一个HelloWorld,搭建服务、发起请求

1、简介

Flask是一个轻量的web服务框架,我们可以利用它快速搭建一个服务,对外提供接口,其他人可以轻松调用我们的服务。这对算法工程师来说比较关键,我们通常不擅长搞开发,这种框架十分适合将算法封装成服务的形式提供给其他人使用。

更多介绍可从搜索引擎找到,这里不过多介绍。我们直接给出一个使用示例,相信大家看了后能快速掌握Flask的基本用法。

2、Flask使用示例

首先,编写一个server.py,作为服务:

python 复制代码
from flask import Flask, request

app = Flask("Demo")


@app.route('/hello', methods=['POST', 'GET'])
def display():
    return {"message": "HelloFlask!", "status": 0}


@app.route('/send_snapshot', methods=['POST'])
def process_snapshot():
    # get post data
    data = request.get_json()
    print("got post data: {}".format(data))

    # process
    ...

    result = {
        "status": 0,
        "message": "send success!",
    }
    return result


if __name__ == '__main__':
    app.run(port=2023, host='127.0.0.1', debug=True)

然后,编写一个client.py,作为客户端,调用上面的服务进行测试:

python 复制代码
import requests
import json


def demo_hello():
    url = "http://127.0.0.1:2023/hello"
    response = requests.post(url)

    if response.status_code == 200:
        response_data = json.loads(response.content)
        print("got response: {}".format(response_data))
    else:
        print("failed!")


def demo_send():
    url = "http://127.0.0.1:2023/send_snapshot"

    data = {
        "start_timestamp": 1,
        "end_timestamp": 2,
        "img": None
    }
    response = requests.post(url, json=data)

    if response.status_code == 200:
        response_data = json.loads(response.content)
        print("send over, got response: {}".format(response_data))
    else:
        print("send failed!")


if __name__ == '__main__':
    demo_hello()
    demo_send()

先启动server,再运行client,即可得到如下结果:

python 复制代码
1. 运行server
python server.py
结果形如:
 * Serving Flask app 'Demo'
 * Debug mode: on
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on http://127.0.0.1:2023
Press CTRL+C to quit
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 887-814-515


2. 运行client.py
python client.py
结果形如:
got response: {'message': 'HelloFlask!', 'status': 0}
send over, got response: {'message': 'send success!', 'status': 0}

参考

官方文档:Welcome to Flask --- Flask Documentation (3.0.x)

github:GitHub - pallets/flask: The Python micro framework for building web applications.

相关推荐
毕设源码_钟学姐22 分钟前
计算机毕业设计springboot宿舍管理信息系统 基于Spring Boot的高校宿舍管理平台设计与实现 Spring Boot框架下的宿舍管理系统开发
spring boot·后端·课程设计
运器12323 分钟前
【一起来学AI大模型】PyTorch DataLoader 实战指南
大数据·人工智能·pytorch·python·深度学习·ai·ai编程
音元系统26 分钟前
Copilot 在 VS Code 中的免费替代方案
python·github·copilot
超龄超能程序猿37 分钟前
(5)机器学习小白入门 YOLOv:数据需求与图像不足应对策略
人工智能·python·机器学习·numpy·pandas·scipy
方圆想当图灵1 小时前
ScheduledFutureTask 踩坑实录
后端
全栈凯哥1 小时前
16.Spring Boot 国际化完全指南
java·spring boot·后端
M1A11 小时前
Java集合框架深度解析:LinkedList vs ArrayList 的对决
java·后端
31535669132 小时前
Springboot实现一个接口加密
后端
cooldream20092 小时前
Python 包管理新时代:深入了解 `uv` 的使用与实践
python·uv·包管理器
之歆2 小时前
Python-魔术方法-创建、初始化与销毁-hash-bool-可视化-运算符重载-容器和大小-可调用对象-上下文管理-反射-描述器-二分-学习笔记
笔记·python·学习