Ajax與Python服務器交互

小編:啊南 9閱讀 2020.12.21

說一下大概的思路:

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]

關聯標簽:
欧美日韩在线精品视频二区_日本高清在线精品一区_天天看片天天av免费观看