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

Flask项目Postman POST请求返回500错误的解决求助

问题解决:Flask-RESTful POST请求触发KeyError: 'description'

问题概述

基于Flask与flask-restful开发招聘广告数据库时,发送POST请求创建职位返回500错误。Python日志显示传入数据为:

{'title': 'Internship Cloud Developer', 'describtion': 'Internship for 6 months full-time as Cloud Developer', 'salary': 65000}

执行到resources/job.py第25行时触发KeyError: 'description',但GET请求可正常工作。

错误原因

传入的POST数据中,描述字段的键是拼写错误的describtion,但代码中尝试获取的是正确拼写的description,因键名不匹配引发异常。

解决方案

两种修复方式任选其一:

方式1:修正请求字段名

在Postman中发送POST请求时,将字段名从describtion改为description,与代码中使用的键名保持一致。

方式2:兼容错误拼写(可选,适配历史请求场景)

修改resources/job.py的post方法,同时处理两种拼写的字段:

def post(self):
    data = request.get_json()

    print(data)

    # 优先读取正确拼写的字段,不存在则兼容错误拼写
    description = data.get('description') or data.get('describtion')
    
    job = Job(
        title=data['title'],
        description=description,
        salary=data['salary']
    )

    job_list.append(job)

    return job.data, HTTPStatus.CREATED

额外代码修复点

resources/job.py的get方法中存在潜在问题:Job类未定义is_published属性,会导致后续GET请求触发错误,需在models/job.py的Job类中补充该属性:

# models/job.py 修改Job类
class Job:
    def __init__(self, title, description, salary):
        self.id = get_last_id()
        self.title = title
        self.description = description
        self.salary = salary
        self.is_published = True  # 添加默认属性,可根据业务需求调整值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:20:09