【问题标题】:How do I return an error message in Flask-resful?如何在 Flask-restful 中返回错误消息?
【发布时间】:2017-06-17 04:47:42
【问题描述】:

我在 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

我应该返回什么而不是 pass 语句?

PS:就上下文而言,我正在努力改进https://github.com/tushariscoolster/HospitalManagementSystem

【问题讨论】:

    标签: python flask error-handling flask-restful


    【解决方案1】:

    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"}
    

    最后,客户端应该正确处理错误信息。

    【讨论】:

      猜你喜欢
      • 2012-09-19
      • 2017-02-27
      • 2012-09-25
      • 1970-01-01
      • 1970-01-01
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2015-12-03
      相关资源
      最近更新 更多