我在几个精确的点上比较了这3个非常不同的框架。我已经知道Django有更多用户,Pylons更灵活。我是一个糟糕的程序员,所以我正在寻找一个让我的事情变得简单的框架。
首先,我希望用户能够注册他们的电子邮件地址:没有愚蠢的用户名!就像在Facebook上一样,他们必须添加他们的名字和姓氏。我知道在旧的Django框架中这并不容易。我测试了django-registration应用程序。它不允许这种类型的注册!一个人必须创建一个AUTHENTICATION_BACKEND。这对我来说太复杂了......我想知道在Pylons中是否存在一个简单的解决方案。我已经看到在Web2Py中很容易做到。
其次,我希望只允许被邀请的人注册。我想要一个电子邮件邀请系统。我知道它存在于Django中,但django-invitation应用程序在django-registration应用程序之上工作,所以它需要一个用户名!在Pylons或Web2Py中有一个简单的解决方案吗?
第三,在我的社交网络应用程序中,我希望人们向其他人发送消息。因此,当他们键入某人的名字时,它必须显示为现有名称。有点像Stackoverflow上的“标签系统”。在Django,Pylons或Web2py中这么容易吗?
答案 0 :(得分:5)
关于web2py:
1)是的,这很容易。你这样做:
db.auth_user.insert(username='....', email=email)
和
mail.send(to=email,message='you are registered, please reset password')
2)是的,你可以
# store invitations
db.define_table('invitation',Field('token'))
# send invitations
for email in emails_to_invite:
uuid=str(uuid.uuid4())
db.invitation.insert(token = uuid)
mail.send(to=email,message='click %s to register' % URL('register',args=uuid))
# allow them to register
def register():
if not db(db.invitation.uuid==request.args(0)).count():
redirect('error')
delete = lambda form:db(db.invitation.uuid==request.args(0)).delete()
return dict(form=auth.register(onaccept=delete))
3)不确定我理解。在plugin_wiki中有一个标记系统,在web2py / gluon / contrib / comet_messaging.py中使用html5 websockets和tornado进行异步聊天。在两者之间我相信你得到了你需要的东西。
答案 1 :(得分:2)
关于显示现有名称的最后一点纯粹是设计视图,表单,javascript和模板的问题,因此在任何框架中都存在同样的难度。