我正在使用webpy製作一個web服務器,現在我有一個簡單的表單和一個我寫的特殊類。我希望用戶能夠在代碼中寫入表單,並且如果輸入是函數調用,則調用用戶提交的函數,否則,如果輸入不是函數調用,則對輸入執行任何操作。我相信這必須在模板文件的某個地方實現?任何幫助將不勝感激從HTML表單運行Python代碼
回答
如果我理解正確,您正在尋找一種方法來在服務器上運行客戶端提交的代碼,從表單獲取輸入。
因此,假如你有一個看起來是這樣的(注意textarea元素的名稱)表單模板:
<form method="POST">
<textarea name="code" />
<input type="submit">
</form>
,你會想POST方法添加到您的頁面類來處理輸入和運行代碼:
class MyPage:
def POST(self):
data = web.input()
eval(data.code)
這是不東西,你應該用表格做的是對任何人訪問你不能完全信任,因爲它給你的web的運行他們想要的任何代碼的能力服務器(例如他們c可以輕鬆地嘗試和刪除服務器上的所有文件)。但是,如果您對安全風險還是很滿意,請務必閱讀Pythons eval的文檔以查看您可以傳遞給它的其他參數。
創建一個Python的CGI腳本,並在您的網絡服務器的CGI bin中運行它。 Here is a tutorial.然後腳本就可以訪問表單的輸入並做任何你想做的事情。
cgi模塊也可以非常有幫助,特別是在訪問表單時。 – user1557602 2012-07-27 15:53:10
鏈接已損壞!!!!!!!!!!!!!! – 2017-10-24 08:09:38
- 1. 從Matlab運行Python代碼
- 2. 從Python運行TCL代碼
- 3. 在html上運行python代碼
- 4. 運行Python代碼
- 5. 簡單的Python代碼沒有運行
- 6. Python代碼從html代碼中消失
- 7. 從C++代碼運行Python文件
- 8. 從python代碼運行PowerShell腳本
- 9. 從變量中運行python代碼
- 10. 將html表單代碼轉換爲單行嵌入代碼
- 11. 從C#發佈html表單代碼
- 12. 使用html表單運行javascript代碼提交
- 13. 運行Python代碼上beaglebone
- 14. Python代碼未運行
- 15. 運行Python代碼在Matlab
- 16. Python沒有運行代碼
- 17. Python代碼未運行
- 18. Python代碼運行兩次
- 19. Python - 同時運行代碼
- 20. 如何從html表單執行ruby代碼?
- 21. 在python腳本中運行python代碼
- 22. Python: - 將HTML表單輸入傳遞給python代碼並執行它
- 23. 逐行運行python源代碼
- 24. 從Java代碼運行Matlab
- 25. 從vim運行ruby代碼
- 26. 從java代碼運行xjc
- 27. 從C#運行C代碼#
- 28. 從腳本運行代碼
- 29. 從java代碼運行Launch4J?
- 30. 從vb.net運行代碼
我想我遇到了我的表單如何實現的問題,使用webpy我在服務器上渲染了一些表單: 'my_form = web.form.Form(web.form.Textbox('code',class_ = 'code',id ='code')' and in the template: '
' web.form對象的第一個參數應該是表單名稱,但是當我調用data.code時,我得到一個屬性錯誤:代碼 – langor 2012-07-27 16:59:54Nevermind我有權訪問現在,我只是遇到語法問題,並使用webpy的eval – langor 2012-07-27 19:47:13