2017-06-17 2 views
1

Ich habe eine Überprüfung einer Post-Methode hinzugefügt, um nur Termine an verschiedenen Daten durchzulassen, aber ich weiß nicht, wie ich eine Fehlermeldung zurückgeben kann. Hier ist der CodeWie gebe ich eine Fehlermeldung in Flask-resful zurück?

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 

Was gebe ich anstelle der Pass-Anweisung zurück?

PS: Für Kontext, versuche ich https://github.com/tushariscoolster/HospitalManagementSystem

Antwort

1

Flask-Restful bietet eine abort Funktion zu verbessern, ist es eine Httpexception mit speziellem HTTP-Code und die Nachricht zurück an den Client erhöhen kann.

So können Sie versuchen, den Code wie folgt zu ändern:

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') 

dann wird der Client 403 empfangen und eine gültige Zeichenfolge JSON wie unten:

{"error_message":"just accept an appointment on special date"} 

Der letzte, der Client sollte mit der Fehlermeldung richtig umgehen.

Verwandte Themen