File tree Expand file tree Collapse file tree 1 file changed +37
-0
lines changed Expand file tree Collapse file tree 1 file changed +37
-0
lines changed 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