簡體   English   中英

如何從 Postman POST html 錯誤 500 解決此問題?

[英]How can I solve this Issue from Postman POST html error 500?

這是我使用 Flask,flask-resul 創建工作廣告數據庫的第一個更大的項目。

我試圖在 postman 中創建一個“帖子”,但它不起作用。 我在 python“運行”中收到此代碼:

{'title': 'Internship Cloud Developer', 'describtion': '作為 Cloud Developer 全職實習 6 個月', 'salary': 65000}

127.0.0.1 - - [30/Dec/2022 23:56:06] "POST /jobs HTTP/1.1" 500 - Traceback(最后一次調用):文件 "F:\Program Files (x86)\PythonProject\Flask\ venv\lib\site-packages\flask\app.py”,第 2548 行,在調用中 return self.wsgi_app(environ, start_response) File “F:\Program Files (x86)\PythonProject\Flask\venv\lib\site- packages\flask\app.py”,第 2528 行,在 wsgi_app response = self.handle_exception(e) 文件“F:\Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask_restful_init _.py “,第 271 行,在 error_router 中返回 original_handler(e) 文件“F:\ .full_dispatch_request() 文件“F:\Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask\app.py”,第 1822 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“F :\Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\ flask_restful_init_.py ", line 271, in error_router return original_h andler(e) 文件“F:\Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask\app.py”,第 1820 行,在 full_dispatch_request rv = self.dispatch_request() 文件“F: \Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask\app.py”,第 1796 行,在 dispatch_request 返回 self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)文件“F:\Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask_restful_ init _.py”,第 467 行,包裝器 resp = resource(*args, **kwargs) 文件“F: \Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\flask\views.py",第 107 行,在視圖中返回 current_app.ensure_sync(self.dispatch_request)(**kwargs) File "F:\ Program Files (x86)\PythonProject\Flask\venv\lib\site-packages\ flask_restful_init_.py ", 第 582 行,在 dispatch_request resp = meth(*args, **kwargs) File "F:\Program Files (x86 )\PythonProject\Flask\resources\job.py", 第 25 行,在 post description=data['description'], KeyError: 'description'


The get-method worked without any issues.


I looked at the code and the solutions as well but I havent found any difference. I also followed the instructions to install the versions twice but I did the same as in the solutions.

Thank you for your help.
Here is the code:

models\job.py:

job_list = []

def get_last_id():
    last_job = 1

    if job_list:
        last_job = job_list[-1].id + 1

    return last_job


class Job:
    def __init__(self, title, description, salary):
        self.id = get_last_id()
        self.title = title
        self.description = description
        self.salary = salary

    @property
    def data(self):
        return {
            "id": self.id,
            "title": self.title,
            "description": self.description,
            "salary": self.salary
        }


resources\job.py:

from flask import request
from flask_restful import Resource
from http import HTTPStatus
from models.job import Job, job_list


class JobListResource(Resource):

    def get(self):
        data = []

        for job in job_list:
            if job.is_published is True:
                data.append(job.data)

        return {'data': data}, HTTPStatus.OK

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

        print(data)

        job = Job(
            title=data['title'],
            description=data['description'],
            salary=data['salary']
        )

        job_list.append(job)

        #job.data = property from models
        return job.data, HTTPStatus.CREATED

app-work.py:

from flask import Flask
from flask_restful import Api
from resources.job import JobListResource

app = Flask(__name__)
api = Api(app)

api.add_resource(JobListResource, "/jobs")

if __name__ == "__main__":
    app.run(port=5000, debug=True)
{
    'title': 'Internship Cloud Developer',
    'describtion': 'Internship for 6 months full-time as Cloud Developer',
    'salary': 65000
}

這就是問題。 “description”被錯誤拼寫為“describtion”,因此當代碼嘗試訪問data['description']時,找不到該鍵。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM