REST anrop från en WS till en annan i Flask
Hej,
Jag håller på att lära mig REST web services och har stött på ett problem. Jag håller på att skapa en liten webbapplikation som ska kunna lägga till en student samt ett betyg i en databas. För att kunna göra detta så har jag dels "checkAppCodeWS(Kurskod, Termin" som skall hämta en anmälningskod om det matchar med argumenten. Jag har också "checkStudOnCourseWS(Anmälningskod, Ideal)" som skall kolla ifall en student finns i en kurs eller ej som returnerar True/False. Dessa två är kopplade mot databaser och fungerar felfritt.
Det jag vill göra nu med min tredje WS är att på något sätt "knyta samman dessa" så att det inte ska gå att lägga till ett betyg om inte
checkStudOnCourseWS är true.
Har ni några förslag på hur jag ska gå tillväga för att kunna göra detta? Jag vill alltså kunna anropa en annan WS och använda mig av den responsen på något sätt.
Det är def regResultat() som jag vill göra anrop från.
Min Flask: https://snipplr.com/view/329851/flask/
@app.route('/')
def index():
return render_template("registerHtml.html")
@app.route('/checkAppCode/<course>/<period>', methods= ["GET"])
def checkAppCodeWS(course, period):
myCursor2 = mydb.cursor()
query2 = ("SELECT anmalningskod FROM paraplyet.kursinfo WHERE kurskod = " + "'" + course + "' AND termin = " + "'" + period + "'")
myCursor2.execute(query2)
myresult2 = myCursor2.fetchall()
return jsonify(myresult2)
@app.route('/checkStudOnCourse/<string:AppCode>/<string:ideal>', methods= ["GET"])
def checkStudOnCourseWS(AppCode, ideal):
myCursor3 = mydb.cursor()
query3 = ("SELECT studentID FROM Ideal.kursSokande WHERE anmalningskod = " + "'" + AppCode + "' AND Ideal = " + "'" + ideal + "'")
myCursor3.execute(query3)
myresult3 = myCursor3.fetchall()
if len(myresult3) == 0:
return render_template('Invalid.html')
else:
return jsonify({'Student in course ': True})
@app.route('/register', methods=["POST", "GET"])
def regResultat():
if request.method == "POST":
Period = request.form['period']
#ProvNr = request.form['provNr']
#Betyg = request.form['betyg']
Kurskod = request.form['kurskod']
#Datum = request.form['datum']
Ideal = request.form['ideal']
AppCodeUrl = 'http://127.0.0.1:5000/checkAppCodeWS/'+Kurskod+'/'+Period
AppCodeResp = requests.get(AppCodeUrl)
anl = AppCodeResp.json()
Anmalningskod = str(anl['Anmalningskod'])
CheckStudOnCourse = 'http://127.0.0.1:5000/checkAppCodeWS/'+Anmalningskod+'/'+Ideal
CheckStudOnResp = requests.get(CheckStudOnCourse)
anl2 = CheckStudOnResp.json()
print (anl2)
if __name__ == '__main__':
app.run()
app.debug = True
Min HTML form: https://snipplr.com/view/329852/html/
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>asdasd</title>
</head>
<body>
<form action="/register" method="POST">
<input type="text" placeholder="Period" name="period" /><br>
<input type="text" placeholder="kursKod" name="kurskod" /><br>
<button type="submit" placeholder="submit" name ="submit"></button>
</form>
</body>
</html>