我添加了对Post方法的检查,只让不同日期的约会通过,但我不知道如何返回错误消息。这是代码
from flask_restful import Resource, Api, request
from package.model import conn
class Appointments(Resource):
def get(self):
appointment = conn.execute("SELECT p.*,d.*,a.* from appointment a LEFT JOIN patient p ON a.pat_id = p.pat_id LEFT JOIN doctor d ON a.doc_id = d.doc_id ORDER BY appointment_date DESC").fetchall()
return appointment
def post(self):
appointment = request.get_json(force=True)
pat_id = appointment['pat_id']
doc_id = appointment['doc_id']
appointment_date = appointment['appointment_date']
a = conn.execute("SELECT count(*) From appointment WHERE doc_id =?
AND appointment_date=?",(doc_id,appointment_date,)).fetchone()
if a['count(*)'] == 0:
appointment['app_id'] = conn.execute('''INSERT INTO appointment(pat_id,doc_id,appointment_date)VALUES(?,?,?)''', (pat_id, doc_id,appointment_date)).lastrowid
conn.commit()
return appointment
else:
pass
我应该返回什么而不是传递语句?
PS:对于上下文,我正在尝试改进https://github.com/tushariscoolster/HospitalManagementSystem
答案 0 :(得分:2)
Flask-Restful提供了一个abort
函数,它可以使用特殊的HTTP代码引发HTTPException并将消息发送回客户端。
因此,您可以尝试更改以下代码:
from flask_restful import abort
class Appointments(Resource):
def post(self):
# ignore some code
if a['count(*)'] == 0:
# ignore some code
else:
abort(403, error_message='just accept an appointment on special date')
然后,客户端将收到403和一个有效的JSON字符串,如下所示:
{"error_message":"just accept an appointment on special date"}
最后,客户端应该正确处理错误消息。