我正在使用Pyramid和Beaker会话创建一个webapp.
我想request.session['user_id']在成功登录后存储用户ID 和其他一些信息,然后用它来检查用户是否已登录:
if 'user_id' in request.session:
# user signed in
else:
# user not signed in or session is expired
Run Code Online (Sandbox Code Playgroud)
现在的问题是:是否可以安全地依赖于会话或将是更好的和/或使用更安全金字塔的authenticated_userid()与remember()和forget()从pyramid.security?
在我的SQLAlchemy应用程序中,我有以下模型:
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import scoped_session, sessionmaker
from zope.sqlalchemy import ZopeTransactionExtension
DBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))
class MyModel(declarative_base()):
# ...
label = Column(String(20), unique=True)
def save(self, force=False):
DBSession.add(self)
if force:
DBSession.flush()
Run Code Online (Sandbox Code Playgroud)
稍后MyModel我想要label随机生成的每个新对象的代码,如果生成的值已经存在于DB中,则只重新生成它.
我正在尝试执行以下操作:
# my_model is an object of MyModel
while True:
my_model.label = generate_label()
try:
my_model.save(force=True)
except IntegrityError:
# label is not unique - will do one more iteration
# (*)
pass
else:
# my_model saved successfully - exit …Run Code Online (Sandbox Code Playgroud) 我正在使用Pyramid-1.2.1创建Web应用程序,SQLAlchemy作为数据库后端.
现在我需要和这个应用程序一起做一些周期性的任务,我想使用Celery作为任务处理器,SQLAlchemy作为消息队列和结果后端.
1)我已经安装了Celery-2.1.4,但我无法弄清楚如何使它工作.这是我的celeryconfig.py档案:
# List of modules to import when celery starts.
CELERY_IMPORTS = ("my_app.tasks", )
## Result store settings.
CELERY_RESULT_BACKEND = "database"
CELERY_RESULT_DBURI = "sqlite:///MyDataBase.db"
CELERY_RESULT_SERIALIZER = "json"
## Broker settings.
BROKER_TRANSPORT = "sqlakombu.transport.Transport"
BROKER_HOST = "sqlite:///MyDataBase.db"
Run Code Online (Sandbox Code Playgroud)
将my_app.tasks含有芹菜例子简单的加法任务.
现在我跑的时候
$ celeryd -l info
Run Code Online (Sandbox Code Playgroud)
我看到以下内容:
[2011-11-11 20:22:50,750: WARNING/MainProcess] celery@OrangeMac.local v2.1.4 is starting.
[2011-11-11 20:22:50,765: WARNING/MainProcess]
Configuration ->
. broker -> sqlakombu.transport.Transport://guest@sqlite:///MyDataBase.db/
. queues ->
. celery -> exchange:celery (direct) binding:celery
. concurrency -> 4
. loader …Run Code Online (Sandbox Code Playgroud)