相关疑难解决方法(0)

什么是一个很好的轻量级Python MVC框架?

我知道那里有很多Python框架.你们能指出我正确的方向吗?我主要关注的是简单性,我不需要很多无关的功能.以下是我想要(或不想要)的其他几件事:

  • 不关心ORM,只是想让它与MySQL一起工作
  • 有可配置的路线
  • 支持布局

python model-view-controller frameworks

71
推荐指数
9
解决办法
6万
查看次数

Django vs其他Python Web框架?

我已经尝试了所有存在的Python Web框架,我花了很长时间才意识到没有一个银弹框架,每个框架都有自己的优点和缺点.我开始使用Snakelets并且非常高兴能够在较低的水平上控制几乎所有东西而不用大惊小怪,但后来我发现了TurboGears并且我一直在使用它(1.x).像Catwalk和Web控制台这样的工具对我来说非常宝贵.

但是随着TurboGears 2的出现带来了WSGI的支持,在阅读了Django和WSGI阵营之间的宗教辩论之后,我真的在"以正确的方式做到"之间徘徊,例如,学习WSGI,花费宝贵的时间来编写功能已经存在于Django和其他全栈框架中,而不是使用Django或一些为我做任何事情的高级框架.我能看到的后者的缺点非常明显:

  1. 我在这个过程中没有学到任何东西
  2. 如果我需要做任何更低级别的事情,那将是一种痛苦
  3. 仅使用身份验证的基本站点所需的开销是疯狂的.(IMO)

所以,我想我的问题是,这是更好的选择,还是仅仅是一个意见问题,如果它以最小的麻烦实现我想要的东西(我希望身份验证和CRUD接口,我应该使用Django)我的数据库)?我尝试过Werkzeug,Glashammer和朋友,但AuthKit和Repoze让我害怕,以及设置基本身份验证所涉及的步骤数量.我查看了Pylons,但文档似乎缺乏,并且在引用诸如身份验证或CRUD界面之类的简单功能时,各种wiki页面和文档似乎相互矛盾,对于版本等具有不同的hacks.


感谢S. Lott指出我不够清楚.我的问题是:从长远来看,下列哪一项是值得的,但在短期内并不痛苦(例如某种中间地带,任何人?) - 学习WSGI,或坚持使用"电池包含"框架?如果是后者,我会赞赏一个关于我是否应该再给Django一次尝试,坚持使用TurboGears 1.x,或冒险进入其他框架的建议.

此外,我尝试过CherryPy,但似乎找不到足够好的CRUD应用程序,我可以立即使用它.

python django wsgi web-frameworks turbogears

60
推荐指数
6
解决办法
3万
查看次数

Google App Engine - 安全Cookie

我一直在寻找一种在Google App Engine中进行基于cookie的身份验证/会话的方法,因为我不喜欢基于memcache的会话的想法,我也不喜欢强迫用户创建谷歌帐户的想法使用网站.我偶然发现了某人的帖子,其中提到了Tornado框架中的一些已签名的cookie函数,它看起来就像我需要的那样.我想到的是将用户的id存储在防篡改cookie中,并且可能使用装饰器来请求处理程序来测试用户的身份验证状态,并且作为附带好处,用户ID将可用于请求处理程序数据存储工作等.该概念类似于ASP.NET中的表单身份验证.此代码来自Tornado框架的web.py模块.

根据文档字符串,它"标记和时间戳一个cookie,因此它不能伪造"和"返回给定的签名cookie,如果它验证,或无."

我试图在App Engine项目中使用它,但我不明白尝试让这些方法在请求处理程序的上下文中工作的细微差别.有人能告诉我正确的方法,而不会失去FriendFeed开发人员投入的功能吗?set_secure_cookie和get_secure_cookie部分是最重要的部分,但是能够使用其他方法也是很好的.

#!/usr/bin/env python

import Cookie
import base64
import time
import hashlib
import hmac
import datetime
import re
import calendar
import email.utils
import logging

def _utf8(s):
    if isinstance(s, unicode):
        return s.encode("utf-8")
    assert isinstance(s, str)
    return s

def _unicode(s):
    if isinstance(s, str):
        try:
            return s.decode("utf-8")
        except UnicodeDecodeError:
            raise HTTPError(400, "Non-utf8 argument")
    assert isinstance(s, unicode)
    return s 

def _time_independent_equals(a, b):
    if len(a) != len(b):
        return False
    result = 0
    for x, y in zip(a, b):
        result …
Run Code Online (Sandbox Code Playgroud)

cookies session google-app-engine forms-authentication tornado

6
推荐指数
2
解决办法
7628
查看次数