哪些Python/IronPython网页开发框架可以在微软技术栈上使用?
我开始学习Python的时候用的是IronPython这个版本。现在我想做一些网页开发。我在找一个可以在微软技术栈上使用的Python网页开发框架(也就是IIS + MS SQL Server)。Django看起来是个不错的框架,但根据我了解到的信息,把它在微软技术栈上运行似乎很困难,甚至不太可能。
我想学一个能发挥Python优势的网页框架,所以ASP.NET就不考虑了。
我想在完整的微软技术栈上使用Python的原因有:
- 我们公司主要用的是.Net技术,我们的生产服务器运行的就是完整的微软技术栈
- 使用IronPython,我可以和我们产品现有的.Net库进行互操作
- 我们现有的数据库是在SQL Server上运行的,我想开发一个可以查询这个数据库的应用
- 如果我必须安装另一个网页服务器,我就不能把我的Python项目部署到我们的服务器上
有没有什么推荐的框架呢?
3 个回答
Django理论上可以在Windows上运行,但需要用到Apache和MySQL。其实在IIS上运行是不可行的(而且也不推荐)。
我知道你并没有问这个,但我还是想建议一下,如果你真的想深入学习Python的网页开发,了解一下Linux的技术组合绝对是个不错的选择。:)
虽然可能还不够成熟,但 isapi-wsgi 看起来是一个在IIS上运行WSGI中间层的不错选择(我没有亲自使用过,但感觉值得一试!)。一旦你把WSGI搞定,几乎任何Python的网页框架,包括Django,都可以在它上面运行(我个人最喜欢的是werkzeug,这是一个在WSGI之上的非框架工具集,不过我知道这可能比大多数网页开发者在普通网页应用和网站中喜欢的抽象层次要低)。
django-mssql 应该可以让Django在SQL Server上顺利运行,看起来也相对成熟(再次强调,我没有亲自使用过)。如果你想要一个更复杂的对象关系映射工具,SQLalchemy 声称可以“开箱即用”支持MS-SQL,但有一些小限制(比如每个表不能有超过一个IDENTITY
列)。
如果你想继续使用IronPython,但可以接受用SQLite代替MS-Server,那么在IIS上也可以使用Django on IronPython。
使用完整的微软技术栈会比较困难,因为很少有开源框架专门支持这个方向。你可以尝试使用WAMP(Windows/Apache/MySQL-PostgreSQL/Python)的方法,这样会更顺利一些。
不过,Django是可以在Windows上运行的,甚至可以通过使用PyISAPIe和MS SQL Server支持,让它在IIS上工作,具体可以参考这个链接。
TurboGears也可以在Windows上安装,并且通过它的ORM后端支持MS SQL Server。
在Windows上尝试使用-AMP有时候就像是在自虐。虽然是可以做到的,但在Linux/BSD上使用这些框架会简单得多,也更让人享受。你绝对应该试试。