File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ from flask import Flask , request , render_template
2+ from io import StringIO
3+ import sys
4+
5+ app = Flask (__name__ )
6+
7+ @app .route ('/' , methods = ['GET' , 'POST' ])
8+ def index ():
9+ if request .method == 'POST' :
10+ user_code = request .form ['user_code' ]
11+ result = 0
12+
13+ try :
14+ #capture the output
15+ original_stdout = sys .stdout
16+ sys .stdout = StringIO ()
17+
18+ #execute arbitrary code
19+ exec (user_code )
20+
21+ #retrieve output
22+ output = sys .stdout .getvalue ()
23+
24+ #reset stdout
25+ sys .stdout = original_stdout
26+
27+ result = output .strip ()
28+
29+ except Exception as e :
30+ result = f"Error: { str (e )} "
31+
32+ return render_template ('index.html' , result = result , user_code = user_code )
33+
34+ return render_template ('index.html' , result = None , user_code = "# Write your Python code here and execute it.\n print('Try me!')" )
35+
36+ if __name__ == '__main__' :
37+ app .run (debug = True )
You can’t perform that action at this time.
0 commit comments