本文整理汇总了Python中werkzeug.contrib.sessions.FilesystemSessionStore类的典型用法代码示例。如果您正苦于以下问题:Python FilesystemSessionStore类的具体用法?Python FilesystemSessionStore怎么用?Python FilesystemSessionStore使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了FilesystemSessionStore类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_non_urandom
def test_non_urandom(tmpdir):
urandom = os.urandom
del os.urandom
try:
store = FilesystemSessionStore(str(tmpdir))
store.new()
finally:
os.urandom = urandom
示例2: after_request
def after_request(response):
session_store = FilesystemSessionStore(SESSIONS_DIR)
if g.session.should_save:
session_store.save(g.session)
session['sid'] = g.session.sid
session.permanent = True
app.save_session(session, response)
return response
示例3: test_non_urandom
def test_non_urandom(self):
urandom = os.urandom
del os.urandom
try:
store = FilesystemSessionStore(self.session_folder)
store.new()
finally:
os.urandom = urandom
示例4: before_request
def before_request():
session_store = FilesystemSessionStore(SESSIONS_DIR)
if 'sid' in session:
sid = session.get('sid')
g.session = session_store.get(sid)
else:
session['sid'] = os.urandom(24)
g.session = session_store.new()
示例5: WSGIApplication
class WSGIApplication(object):
def __init__(self, url_mapping, middlewares=None):
self.url_mapping = url_mapping
self.session_store = FilesystemSessionStore()
#self.session_store = BDBSessionStore()
#self.session_store = MemorySessionStore()
self.middlewares = middlewares or []
def addMiddleware(self, middleware):
self.middlewares.append(middleware)
def __call__(self, environ, start_response):
# start_response('200 OK', [('Content-type','text/plain')])
# return ['Hello World!']
adapter = self.url_mapping.bind_to_environ(environ)
# build request with session
request = Request(environ)
request.session = dummy_session
request.user_id = None
# url mapping
try:
endpoint, kwargs = adapter.match()
# turn hander class path like 'www.views.main.index' to a real
# handler class like index
if isinstance(endpoint, basestring):
dot = endpoint.rindex('.')
module, cls = endpoint[:dot], endpoint[dot+1:]
endpoint = __import__(module, {}, {}, [cls])
# build handler
handler = endpoint()
if handler.with_session:
sid = request.cookies.get('session_id')
if sid is None:
request.session = self.session_store.new()
else:
request.session = self.session_store.get(sid)
# build user if possible
request.user_id = request.session.get(SESSION_USER_KEY)
handler.app = self
handler.errors = {}
if settings.store_manager:
handler.store = settings.store_manager.new()
handler.request = request
# middleware
for middleware in self.middlewares:
middleware.processRequest(handler.request)
response = handler(kwargs)
for middleware in reversed(self.middlewares):
middleware.processResponse(handler.request, response)
assert isinstance(response, BaseResponse)
except HTTPException, e:
response = e
except Exception, e:
logging.error(e)
if settings.debug:
raise
response = InternalServerError()
示例6: test_fs_session_lising
def test_fs_session_lising(tmpdir):
store = FilesystemSessionStore(str(tmpdir), renew_missing=True)
sessions = set()
for x in range(10):
sess = store.new()
store.save(sess)
sessions.add(sess.sid)
listed_sessions = set(store.list())
assert sessions == listed_sessions
示例7: test_fs_session_lising
def test_fs_session_lising():
"""Test listing of filesystem sessions"""
store = FilesystemSessionStore(session_folder, renew_missing=True)
sessions = set()
for x in xrange(10):
sess = store.new()
store.save(sess)
sessions.add(sess.sid)
listed_sessions = set(store.list())
assert sessions == listed_sessions
示例8: after_request
def after_request(response):
"""
Closes the database again at the end of the request and store the
session if neccessary.
"""
session_store = FilesystemSessionStore(config.SESSIONS_DIR)
if g.session.should_save:
session_store.save(g.session)
session['sid'] = g.session.sid
session.permanent = True
# we have to do this because Flask
# stores the SecureCookie containing the "Session"
# before calling the "after_request" functions
app.save_session(session, response)
g.db.close()
return response
示例9: test_renewing_fs_session
def test_renewing_fs_session(tmpdir):
store = FilesystemSessionStore(str(tmpdir), renew_missing=True)
x = store.new()
store.save(x)
store.delete(x)
x2 = store.get(x.sid)
assert x2.new
示例10: test_renewing_fs_session
def test_renewing_fs_session(self):
store = FilesystemSessionStore(self.session_folder, renew_missing=True)
x = store.new()
store.save(x)
store.delete(x)
x2 = store.get(x.sid)
assert x2.new
示例11: before_request
def before_request():
"""
Make sure we are connected to the database each request and also
do the session handling.
"""
g.db = connect_db()
session_store = FilesystemSessionStore(config.SESSIONS_DIR)
if 'sid' in session:
sid = session.get('sid')
g.session = session_store.get(sid)
if 'user' in g.session:
g.user = g.session['user']
else:
g.user = None
else:
g.session = session_store.new()
g.user = None
示例12: __init__
def __init__(self, urls={}, config={}):
self.config = config
try:
self.session_store = FilesystemSessionStore(self.config["sessions"]["path"])
except:
self.session_store = None
ruleset = self.flatten_urls(urls)
rule_map = []
for url, rule in ruleset.items():
rule_map.append(Rule(url, endpoint=rule))
self.url_map = Map(rule_map)
示例13: on_session_id
def on_session_id(self, session_id):
""" sockectio_manage can call all the event only if the session is
validate"""
path = session_path()
session_store = FilesystemSessionStore(path)
sid = self.request.cookies.get('sid')
session = None
self.uid = None
if sid:
session = session_store.get(sid)
if session and session_id:
session = session.get(session_id)
else:
session = None
if not session:
return
session.assert_valid()
self.context = session.context
self.uid = session._uid
self.database = session._db
self.lift_acl_restrictions()
示例14: __init__
def __init__(self, settings):
self.settings = settings
loader = jinja2.PackageLoader(__package__)
def guess_autoescape(template_name):
return template_name and any(template_name.endswith(ext)
for ext in ('.html', '.htm', '.xml'))
self.jinja = jinja2.Environment(loader=loader,
autoescape=guess_autoescape)
self.session_store = FilesystemSessionStore(
renew_missing=True, path=settings.session_path)
self.views = {}
for module in site_modules:
self.views.update(module.views)
self.url_map = Map()
self.url_map.converters['regex'] = RegexConverter
for module in site_modules:
for rulefactory in module.get_routes():
self.url_map.add(rulefactory)
self.db_engine = settings.db_connect()
self.DbSession = sessionmaker(bind=self.db_engine)
示例15: config
class Glim:
"""
The class that holds the wsgi app of glim framework.
Attributes
----------
config (dict): The 'glim' key of app.config.<env>.
session_store (werkzeug.contrib.sessions.FilesystemSessionStore):
The session store in case of session usage.
url_map (werkzeug.routing.Map): The url map of wsgi app.
Usage
-----
app = Glim(urls, config)
# start the web server
run_simple(host, int(port), app, use_debugger=True, use_reloader=True)
"""
def __init__(self, urls={}, config={}):
self.config = config
try:
self.session_store = FilesystemSessionStore(
self.config['sessions']['path']
)
except:
self.session_store = None
ruleset = self.flatten_urls(urls)
rule_map = []
for url, rule in ruleset.items():
rule_map.append(Rule(url, endpoint=rule))
self.url_map = Map(rule_map)
def flatten_urls(self, urls, current_key="", ruleset={}):
"""
Function flatten urls for route grouping feature of glim. Thanks
for the stackoverflow guy!
Args
----
urls (dict): a dict of url definitions.
current_key (unknown type): a dict or a string marking the
current key that is used for recursive calls.
ruleset (dict): the ruleset that is eventually returned to
dispatcher.
Returns
-------
ruleset (dict): the ruleset to be bound.
"""
for key in urls:
# If the value is of type `dict`, then recurse with the
# value
if isinstance(urls[key], dict):
self.flatten_urls(urls[key], current_key + key)
# Else if the value is type of list, meaning it is a filter
elif isinstance(urls[key], (list, tuple)):
k = ','.join(urls[key])
ruleset[current_key + key] = k
else:
ruleset[current_key + key] = urls[key]
return ruleset
def dispatch_request(self, request):
"""
Function dispatches the request. It also handles route
filtering.
Args
----
request (werkzeug.wrappers.Request): the request
object.
Returns
-------
response (werkzeug.wrappers.Response): the response
object.
"""
adapter = self.url_map.bind_to_environ(request.environ)
try:
endpoint, values = adapter.match()
mcontroller = import_module('app.controllers')
# detect filters
filters = endpoint.split(',')
endpoint_pieces = filters[-1].split('.')
#.........这里部分代码省略.........