1. 程式人生 > >在網頁實現簡單的Python3代碼的運行

在網頁實現簡單的Python3代碼的運行

思路分析

說一下大概的思路:

1.目標:在輸入框輸入Python3代碼,點擊運行,右邊顯示代碼結果。

2.步驟:

那首先我們需要一個頁面來顯示我們的輸入輸出,還有一個按鈕;

然後就是通過點擊按鈕事件獲取輸入的內容;(用到了Ajax與服務器交互;它會自動封裝請求行,請求頭,空格,我們只需要把內容send就可以了)

再就是發生內容到服務器;

服務器接收內容;

服務器處理內容;(用正則得到我們的代碼塊寫入新的文件命名為.py的文件,

然後用subprocess模塊下的方法去獲取新文件執行後的結果)

服務器返回結果,包括:響應行、響應頭、空格、響應體(代碼執行結果);

最後就是頁面接收到返回結果,並顯示到輸出框。


3.遇到的問題:主要就是在處理服務器接收頁面發送過來的數據,用正則拆分,這塊坑比較多。


貼一下利用subprocess的實現吧:

obj = subprocess.Popen(["python3"], stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE,universal_newlines=True)

f = open("test.py", "r")

content = f.read()

out_error_list = obj.communicate(content)

#返回結果是一個元組,元組的[0]是程序的返回結果,[1]是執行代碼的錯誤信息提示。

print(out_error_list)

if not out_error_list[0]:

result = "請檢查輸入的代碼正確性,謝謝!"+ out_error_list[1]

else:

result = out_error_list[0]


本文出自 “13369014” 博客,請務必保留此出處http://13379014.blog.51cto.com/13369014/1976474

在網頁實現簡單的Python3代碼的運行