MST

星途 面试题库

面试题:Python实现RESTful API之路由处理

在使用Python构建RESTful API时,假设使用Flask框架,如何定义不同HTTP方法(GET、POST、PUT、DELETE)对应的路由和处理函数?请给出示例代码,并简要说明其中的原理。
34.1万 热度难度
编程语言Python

知识考点

AI 面试

面试题答案

一键面试

示例代码

from flask import Flask, jsonify, request

app = Flask(__name__)

# GET 请求处理函数
@app.route('/example', methods=['GET'])
def get_example():
    return jsonify({'message': 'This is a GET request'})

# POST 请求处理函数
@app.route('/example', methods=['POST'])
def post_example():
    data = request.get_json()
    return jsonify({'message': 'This is a POST request', 'data': data})

# PUT 请求处理函数
@app.route('/example', methods=['PUT'])
def put_example():
    data = request.get_json()
    return jsonify({'message': 'This is a PUT request', 'data': data})

# DELETE 请求处理函数
@app.route('/example', methods=['DELETE'])
def delete_example():
    return jsonify({'message': 'This is a DELETE request'})

if __name__ == '__main__':
    app.run(debug=True)

原理说明

  1. 路由定义@app.route 装饰器用于定义URL路由。在上述代码中,/example 是定义的路由路径。
  2. HTTP方法指定:通过 methods 参数指定该路由支持的HTTP方法,如 ['GET', 'POST', 'PUT', 'DELETE'] 分别对应不同的HTTP操作。
  3. 处理函数:每个HTTP方法对应的函数负责处理该方法的请求。例如 get_example 函数处理GET请求,post_example 函数处理POST请求等。在POST和PUT函数中,通过 request.get_json() 获取请求中的JSON数据。jsonify 函数用于将Python字典转换为JSON格式的响应,方便在HTTP响应中返回数据。