从PHP的角度来看如何使用Python作为服务器语言


11

我只知道使用PHP进行服务器端编程。对我来说,我编写了一些东西,index.php然后调用http://localhost/index.php并查看PHP脚本的结果。我一直在使用CakePHP,并且了解可以使用URL重写来做一些事情,但是在我看来,URL和服务器上的PHP文件之间存在一对一的关系。

现在,我对Python做了很多工作,但仅使用命令行工具。我想在下一个项目中使用Python而不是PHP。到目前为止,有人告诉我mod_python,我必须使用Pylons或Twisted甚至Django之类的框架来获取所有输出。其他人说过,我只需要print()一个HTTP标头,然后该脚本将输出,就像我在PHP中使用的那样。

我想写一些基本上只包含目录列表并使它漂亮的东西,以便我可以从移动浏览器访问一堆PDF文件。我知道如何使用PHP执行此操作,也知道如何创建将生成HTML的Python脚本。打开时,我只是不知道如何执行该脚本http://localhost/pdfcentral/

我将如何配置服务器?它可以在Ubuntu 10.04上运行。


您可以采取多种变体,但是最简单的方法是将Python脚本放入cgi-bin目录中,以便服务器知道执行该脚本,并且如果希望使用其他路径,可以选择将PHP文件重定向到该脚本。:关于Python脚本本身就可以按照此过程forrestbao.blogspot.com/2009/08/...
ionFish

Answers:


9

mod_python不再积极发展。尽管Apache 表示这并不意味着该项目已经死了-

目前,mod_python尚未处于积极开发中。这并不意味着它像某些人所说的那样是“死”的。轻描淡写意味着代码和项目足够成熟,只需要很少的维护即可。

但是,建议人们改用mod_wsgi。那就是如果您想从头开始构建所有内容。我建议您不要这样做,除非您将其用作学习练习。

最好使用网络框架进行繁重的工作-处理路由,请求等

这里提供了Python网络框架的完整列表,但其中一些很流行-

  • Django-被认为是Ruby on Rails的Python等效物,并且非常繁重,因此不能很好地满足您的需求。
  • 烧瓶 -这是一个微框架。也就是说,它体积小,不会妨碍您使用,对于不需要大量电池的小型项目是理想的选择。
  • 金字塔 -它是由建造塔的同一批人建造的,这是不存在的。它介于Flask和Django之间-可以替代两者。
  • 瓶子 -这是另一个微框架,甚至比Flask最小。只是一个文件,除了标准库之外没有任何依赖项(如果使用内置的模板引擎),因此非常适合您的需求。
  • Web.py-一旦启用 Reddit(在被收购后就用新工具重写了)。
  • webapp2-这是Google App Engine的标准框架(尽管您可以在其中使用其他框架)。

其中,我会推荐Flask,因为我用过它并且没有任何抱怨。如果您想在站点中使用更多功能,它还具有许多扩展功能,可以使生活变得更加轻松。

另外,您将需要模板引擎-组装html。Jinja2,由制造Flask的同一个人构建,并且使用非常广泛。但是从phpWeb开发中,您可能会发现使用Mako更自然,这也非常流行。

这是有关Python Web开发的更全面的常见问题解答-Python FAQ:Webdev


1
我有一个Flask项目,现在在测试机上运行FastCGI和lighttpd,它也应该在服务器上运行。非常感谢你!
Martin Ueding

1

我发现这个问题有些令人困惑,如果我是对的,我认为您的主要目标是使用漂亮的样式将文件提供给您的手机吗?

如果是这样,那么您就不需要遍历那么多循环来进行设置。

Apache2允许您编辑主文件列表目录,以便您随时可以对其进行样式设置。

在线上也有许多可用的主要主题,只需在Google上搜索Apache2目录列表的主题,这使得响应也不会很困难。

以下是一些有关如何更改Apache的默认外观的信息

还有一些现成的模板可以查看,还有更多...。

回购风格

递归器

指标


这似乎很好地解决了最初的问题。我以为可以将其作为从PHP迁移到Python的第一个项目。如果Python项目停滞不前,我将对此进行研究。谢谢!
Martin Ueding

您的欢迎;)
西蒙·海特
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.