所以正如标题所暗示的那样,我能够发送一个POST请求,并在我的postgresql数据库中(通过pgAdmin客户端(看到数据正在提交和存储,但是我在响应输出中遇到了许多错误。这可能与授权有关,因为我以前从未使用过授权。这两个错误都会产生 500 个错误的响应,这与我想要的相反。
开机自检请求如下:
def create():
"""
Create Student Function
"""
req_data = request.get_json()
try:
data = student_schema.load(req_data)
except ValidationError as err:
error = err.messages
return custom_response(error, 400)
#check if student exists in db
student_in_db = Student.get_user_by_email(data.get('email'))
if student_in_db:
message = {'error': 'Student already exists, please supply another email address'}
return custom_response(message, 400)
student = Student(data)
student.save()
ser_data = student_schema.dump(student).data
token = Auth.generate_token(ser_data.get('id'))
return custom_response({'jwt_token': token}, 201)
custom_response如下:
def custom_response(res, status_code):
"""
Custom Response Function
"""
return Response(
mimetype="application/json",
response=json.dumps(res),
status=status_code
)
错误1存储新条目,但对服务器的响应仍然是 500 错误。错误输出是指向ser_data = student_schema.dump(student).data
这显然是一个字典对象,因此没有属性数据。
错误 2电子邮件在我的数据库中被声明为唯一,因此当尝试使用相同的电子邮件创建另一个用户时,我得到一个唯一约束失败,这会导致 500 响应,即使我有检查学生的内置功能已经在数据库中。
有了flask_sqlalchemy
,我希望看到
db.session.add(student)
db.session.commit()
除非您在
student.save()