Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

这篇具有很好参考价值的文章主要介绍了Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽

 

以下是一个通过 Flask 构建 Web API 服务的详细示例,包含了各类请求(GET、POST、文件上传、静态资源下载)、每个方法独立配置路由、参数接收和解析、请求日志记录以及异常日志记录。请确保你已经安装了 Flask,你可以使用以下命令进行安装:

pip install Flask

接下来是一个包含详细注释的源代码示例:

from flask import Flask, request, send_from_directory
import logging

app = Flask(__name__)

# 配置日志
logging.basicConfig(filename='api.log', level=logging.DEBUG, format='%(asctime)s [%(levelname)s] - %(message)s')

# 定义路由和资源
@app.route('/hello', methods=['GET', 'POST'])
def hello_world():
    if request.method == 'GET':
        # 记录请求日志
        logging.info('GET 请求收到')
        return {'message': '你好,世界!'}
    elif request.method == 'POST':
        # 获取请求中的参数
        data = request.get_json()

        # 记录请求日志
        logging.info(f'POST 请求收到,数据:{data}')

        # 模拟处理数据
        try:
            result = data['input'] * 2
            return {'result': result}
        except KeyError as e:
            # 记录异常日志
            logging.error(f'请求数据中缺少键: {e}')
            return {'error': '无效的请求数据'}, 400

# 文件上传
@app.route('/upload', methods=['POST'])
def upload_file():
    # 获取上传的文件
    file = request.files['file']

    # 记录请求日志
    logging.info(f'文件上传请求收到: {file.filename}')

    # 保存文件到服务器
    file.save(f'uploads/{file.filename}')

    return {'message': '文件上传成功'}

# 静态资源下载
@app.route('/static/<path:filename>')
def serve_static(filename):
    return send_from_directory('static', filename)

# 启动应用
if __name__ == '__main__':
    app.run(debug=True)

在这个例子中:

  • /hello 路由包含了 GET 和 POST 方法,演示了如何获取请求中的参数,并记录请求日志和异常日志。
  • /upload 路由处理了文件上传请求,将文件保存到服务器的 uploads 目录中,并记录请求日志。
  • /static/<path:filename> 路由配置用于提供静态资源下载。

你可以通过以下方式进行测试:

  • GET 请求:http://127.0.0.1:5000/hello
  • POST 请求:http://127.0.0.1:5000/hello,请求体为 JSON 格式的数据。
  • 文件上传:使用 POST 请求 http://127.0.0.1:5000/upload,并在请求中添加一个文件。
  • 静态资源下载:http://127.0.0.1:5000/static/example.txt(示例文件名)。

运行这个脚本后,你可以在浏览器或工具中查看返回的数据,并在脚本所在目录下的 api.log 文件中找到日志记录。这个示例提供了一个基本框架,你可以根据实际需求扩展和修改。

 

Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽文章来源地址https://www.toymoban.com/news/detail-760542.html

到了这里,关于Flask Web API构建实例:GET、POST文件上传、静态资源下载一网打尽的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Flask get &post请求

    python:3.8.0 flask: 2.3.2 postman:9.12.2 Flask deleteput请求传送门:FLASK DELETEPUT 0.0.0.0 : 由于我使用的是 虚拟机,所以指定同一局域网中可反问 debug :开启debug模式,修改程序后会自动部署,无需重启程序 请求举例:http://ip:5000/user?user_name=neil 限定请求只响应路径为 /user 时的 get 请求 使

    2024年02月15日
    浏览(41)
  • flask中GET和POST的区别

    GET和POST是HTTP协议中两种常用的请求方法,它们在如何向服务器发送数据以及数据传输方式上有所不同。下面是GET和POST的主要区别: 一、数据传输位置 : GET :将数据通过URL的查询字符串部分(即URL的参数)传递给服务器。数据以键值对的形式出现在URL中,使用?符号连接U

    2024年02月11日
    浏览(39)
  • ASP.Net Core Web API结合Entity Framework Core框架(API的创建使用,接口前端权限设置,前端获取API的Get,post方法)(程序包引用以及导入数据库)

    目录 1. Web Api 程序包引用 2. Web Api 的创建与Http类型的介绍 2.1 ASP.Net Core Web API项目的创建 2 .2  API接口的创建 2.3 HttpGet和HttpPost类型的区别 3.接口权限设置 4.HttpGet方法和HttpPOst方法 5.前端中用HttpGet/Poset获取接口数据 6.EF框架——配置数据库链接字符串(即将数据库中的表导入项

    2024年02月08日
    浏览(67)
  • flask获取请求对象的get和post参数

    get请求参数是在URL里面的,post请求参数是放在请求头里面的 浏览器访问 http://127.0.0.1:5000/get 自定义参数值,浏览器访问 http://127.0.0.1:5000/get?a=123 postman测试 使用 reques.values 同时获取get和post请求的参数: 这样的好处就是不用在代码里面区分get和post请求是用args和form来获取 验证

    2024年02月11日
    浏览(52)
  • 【Python】Web学习笔记_flask(3)——上传文件

    用GET、POST请求上传图片并呈现出来 首先还是创建文件上传的模板 然后需要定义几个函数: upload():路由函数,接收GET请求时,显示模板文件内容,接收post请求时,上传图片 allowed_file():检测上传的文件是否满足设置的类型 random_file():为上传的文件重新创建随机的不重复文

    2024年02月14日
    浏览(46)
  • python Flask 写一个简易的 web 端上传文件程序 (附demo)

    在当今数字化时代,文件上传需求日益普遍。无论是个人还是企业,都可能需要实现文件上传功能。为此,本文将分享如何使用Python Flask框架创建一个简易的Web端上传文件程序。 需要源码的留下邮箱,私信也会看,不过看的不勤,留言有通知。 Flask 是一个用于构建 Web 应用程

    2024年04月16日
    浏览(49)
  • 使用Flask.Request的方法和属性,获取get和post请求参数(二)

    在Python发送Post、Get等请求时,我们使用到requests库。Flask中有一个request库,有其特有的一些方法和属性,注意跟requests不是同一个。 用于服务端获取客户端请求数据。注意:是未经任何处理的原始数据而不管内容类型,如果数据时json的,则取得是json字符串,排序和请求参数

    2024年02月13日
    浏览(46)
  • https请求httputil方法的使用实例get,post,put

    一、get方式 返回数据格式 这里可以用类来接收,然后获取data里面数据(如上) 二、post方式 三、put方式

    2023年04月09日
    浏览(89)
  • Java中GET请求与POST请求,前端传参与后端接收实例

    此示例以代码方式展现,可直接结合controller层每个接口上方注释与其接口传递参数方式理解! 前端传参直接就以apiPost工具来代替 apiPost调用后端接口几种方式   代码:  controller层: service层: mapper层: xml:

    2024年02月07日
    浏览(55)
  • axios get/post/delete上传下载及springboot后端示例

    记录axios各种使用方法,包括get/post/delete上传下载多种写法及springboot后端示例 以下示例基于浏览器环境,直接使用html直接引入axios资源 三种类型的Content-Type 请求方式 2.1 JSON 格式数据(最常用) Content-Type: application/json 2.2 FormData 数据格式(用于上传文件等场景) Content-Type: multipa

    2024年02月07日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包