开发 Facebook 应用的 Python 框架
我想请教一下你们在用Python开发Facebook应用时的经验。你觉得这个语言中哪些流行的网页框架最适合这个目的呢?我知道“最好”这个词很主观,所以我特别想了解以下几点:
- 最可重用的库。比如,有人可能想为新登录的Facebook用户自动创建账户,同时还想提供一个替代的用户名和密码登录功能。我需要一种身份验证方式来很好地结合这些功能。
- Facebook应用通常和内容管理系统(CMS)网站不太一样。它们更注重用户的操作。对于一些复杂的使用场景,通常需要对从Open Graph API获取的数据进行缓存,这样才能同时对本地和Facebook的数据进行查询(比如根据好友关系连接一些表)。
- 我肯定更喜欢流行的解决方案。它们看起来更稳定,设计得也更周全。我之前用Grails开发过一个Facebook应用,虽然我很喜欢它的架构和整体思路,但遇到的bug和复杂性实在是太多了。而且Groovy仍然是一个相对小众的开发语言,这次我不打算自己单干。
我对Python并不陌生,但在Python的网页开发方面还是新手。不过,经过在Grails上的经历,我觉得Python应该不会让我感到害怕。
3 个回答
如果你现在不想开始学习Django,可以先试试Flask。Flask相对来说要简单很多,适合初学者入门。你可以先用Flask来搭建一些应用。
我用Django已经有一段时间了。最近我开始使用Jinja2了。没有特别的原因,只是觉得这是另一个选择。
如果需要一个完整的框架来开发各种类型的网页应用,我几乎肯定会选择Django,因为它是最简单和最受欢迎的框架。
具体来说,关于Django的应用生态系统,它有很多活跃的应用程序,但这也有一些缺点。并没有一个标准的应用程序可以解决所有问题,不过有一些应用程序可以满足大约90%的需求。有时候,代码写得不太好,但大多数情况下,这些应用程序都能正常工作,完成它们该做的事情,所以几乎不需要有人深入研究代码。
在选择上,我对Omab的Django-Social-Auth非常满意,集成起来非常简单。只需要在我的settings.py
文件中设置3个变量,就可以顺利运行了。
唯一的问题可能是如果你不想使用django.contrib.auth.User
模型,但如果你没有考虑使用这个模型,我建议你再想想这个决定 :)
如果再进一步缩小选择,pyfacebook是另一个集成Facebook的选项。它带有一个djangofb
应用程序,只需简单添加到settings.py
中,一切就好了。它甚至还附带了一个示例Django应用程序。我对这个应用程序的体验还不错,但我还是觉得Omab的集成更简单。
最后,Facebook自己的python-sdk从基础上来说也很容易集成,它提供了一个简单的Python API来访问他们的API。不过,这个SDK似乎更适合AppEngine的用户,所以你的体验可能会有所不同。