代码之家  ›  专栏  ›  技术社区  ›  Jeff

关于制作web应用程序的初学者Python问题

  •  2
  • Jeff  · 技术社区  · 15 年前

    我对Python完全不熟悉——今天以前从未使用过它。我对开发面向web的Python应用程序很感兴趣。我想看看我的web服务器是否支持WSGI或以某种方式运行python应用程序。

    假设我有一个.py文件打印“HelloWorld!”。如何测试服务器是否支持处理此文件?

    仅供参考,这是MacOSX服务器10.5。所以我知道Python已经安装(默认安装在Mac OS X上),但我不知道它是否设置为在服务器端处理.py文件并返回结果。

    顺便说一下,我来自一个PHP背景,所以这对我来说有点陌生。我查看了python文档:wgsi、cgi等,但是由于我还没有做任何具体的工作,这不太有意义。

    3 回复  |  直到 15 年前
        1
  •  5
  •   Mike    15 年前

    一个非常基本的WSGI应用程序可以如下所示:

    def application(environ, start_response):
        start_response('200 OK', [('content-type', 'text/html')])
        return ['Hello world!']
    

    不幸的是,如果您将它放到服务器上的helloworld.py中,然后浏览到URL/helloworld.py,您很可能会看到代码。

    一般来说,您需要向服务器(或服务器配置文件)添加非常特定的配置选项,以使它能够正确地为您的python“应用程序”服务。假设您在Apache2上使用的是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(虚拟专用服务器),然后根据需要进行配置。

        2
  •  3
  •   Graham Dumpleton    15 年前

    如果您是Python和Python web应用程序开发的新手,那么请忽略所有的托管问题,不要从头开始。只需获得一个功能齐全的Python web框架,比如Django或web2py,并学习如何使用内置的开发web服务器编写pythonweb应用程序。你只会给自己造成很大的痛苦,试图解决不同的问题,生产网站托管首先。