我可以在Haskell中编写组件以在Django站点上使用吗?

时间:2009-10-01 21:49:37

标签: django haskell

我对Web服务有所了解,但对于Web编程来说却是一个新手。 Django看起来很棒,喜欢我可以快速拿起的东西。我在Haskell方面有很多经验(在python中很少),并希望能够用我最喜欢的语言开始编写一些后端非网络相关的东西。但是,如果我使用django,如果haskell代码不可用,我当然不想这样做。

我一直在研究几个haskell web框架:hApps看起来太复杂和没有文档,turbinado看起来平易近人但没有文档等等。我认为使用广泛使用的框架,如django,并且可以访问大量代码我可以插上来帮助我很多。但我非常愿意听到有关框架使用的其他想法,或者我必须以某种方式使用Haskell的其他选项。

5 个答案:

答案 0 :(得分:4)

这取决于“网络服务”的含义。

如果您指的是典型的Web应用程序/网站,则需要一个简单的数据库界面,HTML生成,简单的HTTP处理,会话和表单处理。你真的需要一个像样的网络框架。

Haskell没有'好'的Web框架。 (在做出这样的判断时,我会考虑诸如文档,社区,概率之类的因素 - 一年之内不会被抛弃的新方法等)。

如果你的意思更少“webby”,例如一个返回地图数据的服务,并且不需要大多数这些功能,您可以使用Hack甚至Network.CGI之类的东西来为您提供基本的HTTP接口,构建您的服务,使用CGI / FastCGI运行。如果你还需要一个动态的网站,你可以使用像Django这样的东西。

您还可以编写从Django代码调用的Haskell独立可执行文件。但直接Python< - > Haskell互操作不太可能/实用。

答案 1 :(得分:3)

如果您只是构建Web服务,可以在Haskell中编写cgi或fastcgi程序来处理Web服务调用。

答案 2 :(得分:1)

学习python,你会发现它有很多功能特性。这很容易接受,非常愉快。

Django的好选择。

答案 3 :(得分:1)

转到F#并查看NDjango - 这是一个用F#编写的Django端口。完全披露:NDjango是我的项目www.ndjango.com

答案 4 :(得分:0)

如果您希望Haskell直接与数据库通信,则必须修改Django数据库迁移脚本,以使用像Yesod的Persistent这样的库发出Haskell模型代码。