diff options
Diffstat (limited to 'snekbox/site/snekapp.py')
-rw-r--r-- | snekbox/site/snekapp.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/snekbox/site/snekapp.py b/snekbox/site/snekapp.py new file mode 100644 index 0000000..492d703 --- /dev/null +++ b/snekbox/site/snekapp.py @@ -0,0 +1,38 @@ +from flask import Flask, jsonify, render_template, request + +from snekbox.nsjail import NsJail + +nsjail = NsJail() + +# Load app +app = Flask(__name__) +app.use_reloader = False + +# Logging +log = app.logger + + [email protected]('/') +def index(): + """Return a page with a form for inputting code to be executed.""" + + return render_template('index.html') + + [email protected]('/result', methods=["POST", "GET"]) +def result(): + """Execute code and return a page displaying the results.""" + + if request.method == "POST": + code = request.form["Code"] + output = nsjail.python3(code) + return render_template('result.html', code=code, result=output) + + [email protected]('/input', methods=["POST"]) +def code_input(): + """Execute code and return the results.""" + + body = request.get_json() + output = nsjail.python3(body["code"]) + return jsonify(input=body["code"], output=output) |