簡體   English   中英

關於制作網絡應用程序的初學者Python問題

[英]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應用程序。 通過嘗試首先解決生產網絡托管的明顯問題,你只會給自己帶來很多痛苦。

先讀一下。

Python Web框架,WSGI和CGI如何組合在一起

然后修改你的問題,專門調出你還沒有發現的東西。

閱讀本文之后,重新閱讀關於mod_wsgi的部分,這是Apache可以運行Python的幾種方式之一。

重讀該部分后,重新閱讀有關Python如何作為cgi腳本運行的部分。 這是Apache可以運行Python的幾種方式中的另一種。

重新閱讀完所有內容后,請修改問題以解釋Apache配置的哪些部分讓您感到困惑。

你能找到mod_wsgi嗎? 你能找到mod_cgi嗎? 請具體說明Apache配置的哪些部分讓您感到困惑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM