2013-04-20 16 views
1

當談到Python並將它合併到html中時,我是一個新手。我花了很多時間研究沒有運氣,所以我要求的只是一點幫助或一個可以找到所需信息的區域。如何用python連接一個網頁到mod_wsgi?

我正在使用AMPPS開發一個網站,因爲它已經預裝了mod_wsgi。我正在創建一個函數,用戶可以在文本區域E.G中輸入Python腳本。

> print 'Hello World' 

用戶按下執行按鈕,然後結果顯示在頁面中。 我假設這是使用html和Python腳本發送的,並通過了服務器端,所以mod_wsgi可以解碼python並將其傳回。

Hello World 

問題是Python的命令需要發送一個腳本,其中包括「印刷世界你好」,然後用mod_wsgi的服務器端連接什麼命令或?

一旦連接,顯示的反應如何?

AMPPS是否需要任何配置才能使mod_wsgi正常工作(閱讀有關配置httpd.conf文件的線程)?

對於所有的問題,我很抱歉,我只是完全沉迷於atm,我的Python書已經超出了我的頭。

親切的問候安迪

回答

1

我做過的最簡單的wsgi工作是使用web.py

Here是Apache的mod_wsgi設置文檔。

您將需要一個帶有GET方法的類,該類使用輸入表單呈現html,然後將腳本發回POST方法(如果需要,可以在同一個類上)。你的post方法的響應將是你在Python腳本中調用eval時得到的結果。注意:這是一個非常危險的應用程序,因爲用戶現在可以在服務器上運行未經驗證的Python腳本,因爲服務器進程運行的是用戶。

示例代碼:

import web 

class Echo: 
    def GET(self): 
     return """<html><form name="script-input-form" action="/" method="post"> 
Script: <input type="text" name="script-body"> 
<input type="submit" value="Submit"> 
</form><html>""" 

    def POST(self): 
     data = web.input() 
     obj = compile(data['script-body'], '', 'exec') 
     result = eval(obj, globals(), locals()) 
     web.seeother('/') 

urls = (
    '/.*', Echo, 
) 
if __name__ == "__main__": 
    app = web.application(urls, globals()) 
    app.run() 
else: 
    app = web.application(urls, globals()).wsgifunc() 

我還必須發表評論,如果你剛開始學習編程,剛開始學習Python和沒有做任何Apache的配置,你在同一時間咬掉了很多。你可能想要學習更易消化的部分這些項目。

+0

非常感謝您的時間和回覆 - Andy – user2141414 2013-04-21 10:55:36

0

我推薦你使用Bottle.js,這裏從Bottlepy.org一個例子:

from bottle import route, run, template 

@route('/hello/:name') 
def index(name='World'): 
    return template('<b>Hello {{name}}</b>!', name=name) 

run(host='localhost', port=8080) 

可以download and install fast,瓶與Python 2.5+運行和3.x並啓用路由併爲Web應用程序定製您的響應。

+0

感謝您的時間 - Andy – user2141414 2013-04-21 10:55:53