因此,正如标题所示,我能够发送POST请求,并在我的postgresql数据库中(通过pgAdmin客户端)看到正在提交和存储数据,但是在响应中遇到了许多错误输出。这可能与授权有关,因为我之前从未从事过授权工作。这两种错误都会产生500错误的响应,这与我想要的相反。
POST请求如下:
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
显然是dict对象,因此没有属性数据。
错误2 电子邮件在我的数据库中被声明为唯一,因此,当尝试使用同一电子邮件创建另一个用户时,我遇到了唯一性约束失败,即使我具有检查学生是否已经进入的内置功能,也会导致500响应。数据库。
答案 0 :(得分:0)
借助flask_sqlalchemy
,我希望看到
db.session.add(student)
db.session.commit()
除非您要这样做
student.save()