[英]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.