【问题标题】:What Python/IronPython web development framework work on the Microsoft technology stack?哪些 Python/IronPython Web 开发框架适用于 Microsoft 技术堆栈?
【发布时间】:2010-02-23 20:16:35
【问题描述】:

我开始使用 IronPython 实现来学习 Python。我现在想做一些网络开发。我正在寻找适用于 Microsoft 技术堆栈(IIS + MS SQL Server)的 Python Web 开发框架。 Django 看起来像一个有趣的框架,但根据我所读到的内容,让它在 Microsoft 技术堆栈上工作似乎非常困难或不可能。

我想学习一个利用 python 优势的 web 框架,所以这里不适合 ASP.NET。

我想在完整的 Microsoft 堆栈上使用 Python 的原因是:

  • 我们是一家 .Net 商店,我们的生产服务器运行完整的 Microsoft 堆栈
  • 借助 IronPython,我将能够与我们产品的现有 .Net 库进行互操作
  • 我们现有的数据库在 SQL Server 中运行,我想开发一个查询该数据库的应用
  • 如果我必须安装另一个 Web 服务器,则不允许将我的 Python 项目部署到我们的服务器

有什么建议吗?

【问题讨论】:

    标签: python ironpython


    【解决方案1】:

    使用完整的 MS 堆栈会很困难,因为没有多少 FLOSS 框架以此为目标。使用 WAMP(Windows/Apache/MySQL-PostgreSQL/Python)方法会更好。

    话虽如此,Django 可以在 Windows 上运行,甚至 can be made to work under IIS 也可以使用 PyISAPIeMS SQL Server 支持。

    TurboGears can also be installed on Windows,并通过其 ORM 后端拥有MS SQL Server support

    尝试在 Windows 下使用 -AMP 有时可能是一种自虐练习。可以做到,但在 Linux/BSD 下使用这些框架要容易得多,而且令人愉快。你一定要试试。

    【讨论】:

    • 如果 OP 打算使用 IronPython 通过 Python 链接到 .net,那么在 Django 中使用该代码会产生什么影响?
    • @Smith325:如果该项目完全是在 IronPython 中制作的,那么如果您尝试跟随 Django 的主干,您可能会因为 Python 的标准库的某些部分可能不存在而面临崩溃的风险。除此之外(并且对 ORM 层有些头疼)除了可以使用 .Net 的库和其他现有组件之外,应该没有其他含义,但是您可以通过使用 Python for .Net pythonnet.sourceforge.net跨度>
    【解决方案2】:

    虽然可能还不完全成熟,isapi-wsgi 看起来是在 IIS 上运行 WSGI 中间层的有前途的方法(我没有实践经验,但似乎值得一试!)。一旦你让 WSGI 运行了几乎任何 Python Web 框架,包括 Django,都应该在它之上运行(我个人最喜欢的是 werkzeug,这是一个在 WSGI 之上的实用程序框架,但我意识到它可能比大多数 Web 开发人员更喜欢的典型 Web 应用程序和网站的抽象级别更低)。

    django-mssql 应该让 Django 在 SQL Server 上运行良好并且看起来相当成熟(同样,没有动手经验)。如果您更喜欢更复杂的 obj 关系映射器,SQLalchemy 声称支持“开箱即用”的 MS-SQL,但有一些限制(例如,每个表不超过一个 IDENTITY 列)。

    如果您想坚持使用 IronPython,但可以使用 SQLite 而不是 MS-Server,那么也应该可以将 Django on IronPython 与 IIS 一起使用。

    【讨论】:

    • @alex:我已经阅读了 Jeff 关于尝试在 IronPython/IIS 上运行 Django 测试的帖子。根据他的帖子,它没有用。如果他不能运行测试,我想他也不能使用框架。对吗?
    • @alex:您描述的前两个选项仅适用于 CPython。正确的?如果我真的无法让 Web 开发框架在 IronPython 上工作,我会考虑这个选项。
    • @Sly,一般来说,是的 - 如果没有测试,您几乎无法确信框架的特定方面符合预期(某些部分可能有效,但是否包括您需要的所有零件)。同样是的,我从 CPython 选项开始(我怀疑这会给你更好的机会通过相关测试)。
    【解决方案3】:

    理论上,Django 确实可以在 Windows 上运行,但使用的是 Apache 和 MySQL。在 IIS 上运行它是不可能的(当然也不推荐)。

    我知道你完全没有问这个问题,但我必须建议,如果你真的想进入 Python Web 开发,那么研究 Linux 技术堆栈绝对是推荐的方法。 :)

    【讨论】:

    • 查看对我原始问题的编辑,了解我为什么要使用 MS 堆栈的原因。
    猜你喜欢
    • 1970-01-01
    • 2015-03-21
    • 2011-02-18
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    相关资源
    最近更新 更多