2013-04-10 58 views
2

我完成了一些python教程,並希望進一步深入。我可以通過在桌面上按f5(保存並運行)來打開IDLE並執行代碼,但這是我的能力的限制。我想能夠執行一個網頁上的程序在網站上運行Python文件

我試着簡單地上傳文件到我的服務器,然後瀏覽到鉻。我相信你知道發生了什麼事情:屏幕上顯示的網址。

因爲我是python的新手,我不確定從哪裏開始,甚至不知道要問什麼問題。基本上我想在browswer中運行該程序,就好像browswer是IDLE一樣,或者更好的是,創建一個html/css按鈕,在單擊時運行該程序。

+2

你可以像CGI那樣運行它我認爲...你可以使用php的exec函數。您可以使用燒瓶或django並使用fcgi或乘客運行一個網站。這取決於你的意思......但我認爲只是使用php的exec函數可能是你想要的 – 2013-04-10 04:06:15

+0

@Joran謝謝,我將從exec函數開始,看看我得到了什麼。基本上我只想靜態網頁有一些「點擊我來運行簡單的Python腳本」按鈕。 – Travis 2013-04-10 04:13:07

+0

確保你的py文件以'#!/ bin/python'開始,並且/或者叫做exec('python myscript.py')'...這可能是一個巨大的巨大安全風險,所以我會保留URL的祕密,也許密碼保護......真的,我會建議做一個本地主機上,也許 – 2013-04-10 04:15:02

回答

5

我建議你看看flask。這是一個包含基本Web服務器的微型框架。這些文檔應該能夠幫助您實現您想要的大部分方式。

在網絡上運行python通常意味着當你點擊一個URL時,服務器運行某種python腳本,並返回一個字符串 - 你請求的頁面的HTML內容。您不能像使用JavaScript一樣使用python來'腳本'網頁。

您可以在網頁中運行的交互式解釋器中運行python - 只需檢查try ipython

+0

+1我幾乎發佈了這樣的東西..但決定這聽起來像是他只是想在Flask上執行文件/ – 2013-04-10 04:23:31

+0

+1;可能是Python的最佳入門網頁框架。 – 2013-04-10 04:42:21

2

基本上,您只需配置您的Web服務器來執行該文件而不是顯示它。通常情況下,您將此設置爲*.py文件,但您可以將其限制在特定目錄中的文件中。顯然,你的服務器已經有這樣的PHP文件設置。

用PHP包裝Python(顯然)不會增加速度,安全性或實用性。

下線你可能想看看框架,mod_python,WSGI等,但對於你的直接問題,這些是嚴重的矯枉過正。

這僅限於靜態服務器端代碼; JavaScript在訪問者的瀏覽器中以交互方式運行,允許更加豐富的用戶交互。服務器端腳本在瀏覽器嘗試加載頁面時運行,並且腳本完成時頁面加載完成。如果你想在你的瀏覽器類似IDLE,這是一個JavaScript的挑戰,而不是一個Python任務(和特定車輪已經被髮明,產品化,銷售,並銷往美國:http://pythonfiddle.com/

0

這樣的:

python -c "import urllib2; exec urllib2.urlopen("http://localhost:8000/test.py").read()"