You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask获取POST请求JSON参数并处理传入域名业务的实现方法

Flask 读取POST JSON请求参数实现方案

你当前的代码存在两处和需求不匹配的问题:

  • 路由定义和你实际请求的地址不符:你的curl请求发往/api/v1/domains,但现有代码的路由是带路径参数的/api/v1/domains/<domainarg>,该写法仅适用于参数放在URL路径里的场景(比如POST /api/v1/domains/vangus.com),和你把参数放在JSON请求体的场景不匹配。
  • 你没有编写从POST请求体中解析JSON参数的逻辑。

完整修正代码

from flask import Flask, request, jsonify
import json
import subprocess
import sys
import re
from datetime import datetime
from pathlib import Path

app = Flask(__name__)

# 修正路由:去掉路径参数,和实际请求地址匹配
@app.route('/api/v1/domains', methods=['POST'])
def add_domain():
    # 解析请求体的JSON数据
    request_data = request.get_json()
    # 增加参数校验,避免非法请求报错
    if not request_data or 'domain_name' not in request_data:
        return jsonify({"error": "缺少必填参数domain_name"}), 400
    
    # 读取domain_name参数保存到变量
    domain_name = request_data['domain_name'].strip()
    
    # 这里写你后续处理nginx配置的逻辑
    # .....
    
    # 处理完成返回成功响应
    return jsonify({"code": 0, "message": "域名添加成功", "domain": domain_name}), 200

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

关键逻辑说明

  • request.get_json()是Flask提供的解析JSON请求体的方法,仅当请求头Content-Type为application/json时可以正常解析,否则会返回None
  • 增加参数校验逻辑可以避免非法请求导致服务报错,异常场景会返回400状态码和错误提示
  • 提取到的domain_name变量就是你POST请求里传递的域名值,可以直接用于后续的nginx操作逻辑

内容的提问来源于stack exchange,提问作者Stas Karpinsky

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:54:03