[英]Beginner Python question about making a web app
我是Python的新手 - 從未在今天之前使用它。 我感興趣的是為Web開發Python應用程序。 我想檢查一下我的Web服務器是否支持WSGI或以某種方式運行python應用程序。
假設我有一個打印“Hello world!”的.py文件。 如何測試我的服務器是否支持處理此文件?
僅供參考,這是一台Mac OS X服務器10.5。 所以我知道安裝了Python(它默認安裝在Mac OS X上),但我不知道它是否設置為處理服務器端的.py文件並返回結果。
順便說一句,我來自PHP背景,所以這對我來說有點陌生。 我看過python docs re:wgsi,cgi等等,但由於我還沒有做任何具體的事情,所以它並沒有多大意義。
一個非常基本的WSGI應用程序可以如下所示:
def application(environ, start_response):
start_response('200 OK', [('content-type', 'text/html')])
return ['Hello world!']
不幸的是,如果你把它放在服務器上的helloworld.py然后瀏覽到URL / helloworld.py,你很可能會看到代碼。
通常,您需要向服務器(或服務器配置文件)添加非常具體的配置選項,以使其正確地為您的python“應用程序”提供服務。 鑒於您在Apache 2上使用mod_wsgi,配置可能如下所示:
<VirtualHost *>
ServerName example.com
WSGIScriptAlias /server/location/address /path/to/helloworld.py
</VirtualHost>
其中/ server / location / address是您必須瀏覽到的URL的端點。
這是因為python WSGI捕獲傳遞給它的所有URL,並將它們推送到相同的入口點(您的應用程序方法/類)。 並且從參數中收到的信息中,應用程序必須決定返回哪個頁面。
由於此信息是特定於應用程序的,因此應該有一種在服務器上配置它的方法,但是我還沒有遇到允許配置Python應用程序的Web托管配置面板。 這通常意味着您必須聯系服務器管理員並讓他們為您配置它。
但是,一般情況下,當您注冊托管時,公司通常會有一個頁面,告訴您他們服務器上支持的內容(通常是:php,mysql)以及允許的空間和帶寬。 因此,如果他們沒有在他們的網站上列出,很可能他們不會支持它。
為了解決這個問題,您可以購買VPS(虛擬專用服務器),然后根據需要進行配置。
如果您不熟悉Python和Python Web應用程序開發,那么請忽略所有托管問題並且不要從頭開始。 只需獲得一個功能齊全的Python Web框架,如Django或web2py,並學習如何使用他們內置的開發Web服務器編寫Python Web應用程序。 通過嘗試首先解決生產網絡托管的明顯問題,你只會給自己帶來很多痛苦。
先讀一下。
然后修改你的問題,專門調出你還沒有發現的東西。
閱讀本文之后,重新閱讀關於mod_wsgi
的部分,這是Apache可以運行Python的幾種方式之一。
重讀該部分后,重新閱讀有關Python如何作為cgi
腳本運行的部分。 這是Apache可以運行Python的幾種方式中的另一種。
重新閱讀完所有內容后,請修改問題以解釋Apache配置的哪些部分讓您感到困惑。
你能找到mod_wsgi
嗎? 你能找到mod_cgi
嗎? 請具體說明Apache配置的哪些部分讓您感到困惑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.