问题描述
|
我目前正在将网站从PHP移植到python。 PHP Web应用程序正在通过以下方式使用无扩展网址
DefaultType application/x-httpd-PHP
我可以为python做类似的事情吗?我已经在Google周围搜索过,尝试添加对python有意义的mime类型,但到目前为止还没有成功。如果可能的话,我宁愿用这种方式代替使用mod_rewrite。
谢谢。
更新:我的服务器当前设置为使用wsgi,但是,如果我的python脚本没有扩展名,浏览器将下载它们,以防被服务器解析。
解决方法
WSGI完全不使用/不需要扩展。您的路由框架会适当处理URL。如果您不使用WSGI,为什么不呢?
,我想完整的答案将永远存在,但是在apache上运行python的最佳方法是通过WSGI,所以我建议您从这里开始:http://code.google.com/p/modwsgi/
这基本上需要两件事:
用于Apache的mod_wsgi(警告,从apt软件包安装会切换您的apache MPM并可能会卸载您的mod_php;它们可以一起生活,但是需要一些手工)
实现基本wsgi接口的python脚本
如果您正在建立一个网站,那么您需要照顾的很多事情就是使用MVC框架是有意义的,并且Django是python的自然选择,除非您需要一些新颖的功能,例如websockets支持。
它随附了有关设置计算机的出色教程(适用于wsgi:http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/)
优点是Django(与大多数MVC一样)负责路由您的请求-因此,您不仅可以实现无扩展名,而且可以实现完全的类似REST的访问。
有了MVC框架,您基本上就从一个面向页面的网站转变为一个真正的Web应用程序……大括号!
从这个答案开始,您应该能够找到关于stackoverflow和serverfault的许多相关问答。