本文整理汇总了Python中werkzeug.wrappers.Request.session方法的典型用法代码示例。如果您正苦于以下问题:Python Request.session方法的具体用法?Python Request.session怎么用?Python Request.session使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类werkzeug.wrappers.Request
的用法示例。
在下文中一共展示了Request.session方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: get_request
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def get_request(self, environ):
request = Request(environ)
request.app = self.app
request.translations = load_core_translations(self.app.cfg['language'])
request.is_admin = False
request.is_somebody = False
cookie_name = self.app.cfg['session_cookie_name']
session = SecureCookie.load_cookie(
request, cookie_name, self.app.cfg['secret_key'].encode('utf-8')
)
request.session = session
engine = self.app.database_engine
user_id = session.get('uid')
if user_id:
admin_privilege = engine.execute(
privileges.select(privileges.c.name=='BLOG_ADMIN')
).fetchone()
admin = engine.execute(user_privileges.select(and_(
user_privileges.c.user_id==int(user_id),
user_privileges.c.privilege_id==admin_privilege.privilege_id
))).fetchone()
request.is_somebody = True
request.is_admin = admin is not None
return request
示例2: wsgi_app
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def wsgi_app(self, environ, start_response):
request = Request(environ)
sid = request.cookies.get('pyeve_sid')
if sid is None:
request.session = self.sessionStore.new()
else:
request.session = self.sessionStore.get(sid)
response = self.dispatch_request(request)
if request.session.should_save:
self.sessionStore.save(request.session)
response.set_cookie('pyeve_sid', request.session.sid)
return response(environ, start_response)
示例3: __call__
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def __call__(self, environ, start_response):
ui_lang = self.get_lang(environ)
translation.activate(ui_lang)
l10n.activate(ui_lang)
environ['REQUEST_URI'] = wsgiref.util.request_uri(environ) # TODO remove?
app_url_prefix = settings.get_str('global', 'action_path_prefix', '')
if app_url_prefix and environ['PATH_INFO'].startswith(app_url_prefix):
environ['PATH_INFO'] = environ['PATH_INFO'][len(app_url_prefix):]
sessions = plugins.runtime.SESSIONS.instance
request = Request(environ)
sid = request.cookies.get(sessions.get_cookie_name())
if sid is None:
request.session = sessions.new()
else:
request.session = sessions.get(sid)
sid_is_valid = True
if environ['PATH_INFO'] in ('/', ''):
url = environ['REQUEST_URI'].split('?')[0]
if not url.endswith('/'):
url += '/'
status = '303 See Other'
headers = [('Location', '%sfirst_form' % url)]
body = ''
# old-style (CGI version) URLs are redirected to new ones
elif '/run.cgi/' in environ['REQUEST_URI']:
status = '301 Moved Permanently'
headers = [('Location', environ['REQUEST_URI'].replace('/run.cgi/', '/'))]
body = ''
else:
controller_class = self.load_controller_class(environ['PATH_INFO'])
app = controller_class(request=request, ui_lang=ui_lang)
status, headers, sid_is_valid, body = app.run()
response = Response(response=body, status=status, headers=headers)
if not sid_is_valid:
curr_data = dict(request.session)
request.session = sessions.new()
request.session.update(curr_data)
request.session.modified = True
if request.session.should_save:
sessions.save(request.session)
response.set_cookie(sessions.get_cookie_name(), request.session.sid)
return response(environ, start_response)
示例4: __call__
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def __call__(self, environ, start_response):
"""
Works as specified by the WSGI
"""
ui_lang = get_lang(environ)
translation.activate(ui_lang)
l10n.activate(ui_lang)
environ['REQUEST_URI'] = wsgiref.util.request_uri(environ) # TODO remove?
sessions = plugins.get('sessions')
request = Request(environ)
sid = request.cookies.get(sessions.get_cookie_name())
if sid is None:
request.session = sessions.new()
else:
request.session = sessions.get(sid)
sid_is_valid = True
if environ['PATH_INFO'] in ('/', ''):
url = environ['REQUEST_URI']
if not url.endswith('/'):
url += '/'
status = '303 See Other'
headers = [('Location', '%sfirst_form' % url)]
body = ''
elif '/run.cgi/' in environ['REQUEST_URI']: # old-style (CGI version) URLs are redirected to new ones
status = '301 Moved Permanently'
headers = [('Location', environ['REQUEST_URI'].replace('/run.cgi/', '/'))]
body = ''
else:
controller_class = load_controller_class(environ['PATH_INFO'])
app = controller_class(request=request, ui_lang=ui_lang)
status, headers, sid_is_valid, body = app.run(request)
response = Response(response=body, status=status, headers=headers)
if not sid_is_valid:
curr_data = dict(request.session)
request.session = sessions.new()
request.session.update(curr_data)
request.session.modified = True
if request.session.should_save:
sessions.save(request.session)
response.set_cookie(sessions.get_cookie_name(), request.session.sid)
start_response(status, headers)
return response(environ, start_response)
示例5: __call__
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
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 = {}
for dbname, db in self.db.items():
setattr(handler, dbname, db.new())
#if self.app.store_manager:
# handler.store = self.app.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
示例6: wsgi_app
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def wsgi_app(self, environ, start_response):
"""
Function returns the wsgi app of glim framework.
Args
----
environ (unknown type): The werkzeug environment.
start_response (function): The werkzeug's start_response
function.
Returns
-------
response (werkzeug.wrappers.Response): the dispatched response
object.
"""
request = Request(environ)
if self.session_store is not None:
sid = request.cookies.get(self.config['sessions']['id_header'])
if sid is None:
request.session = self.session_store.new()
else:
request.session = self.session_store.get(sid)
response = self.dispatch_request(request)
if self.session_store is not None:
if request.session.should_save:
self.session_store.save(request.session)
response.set_cookie(
self.config['sessions']['id_header'],
request.session.sid
)
return response(environ, start_response)
示例7: wsgi_app
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def wsgi_app(self, environ, start_response):
request = Request(environ)
if self.session_store is not None:
sid = request.cookies.get(self.config['sessions']['id_header'])
if sid is None:
request.session = self.session_store.new()
else:
request.session = self.session_store.get(sid)
response = self.dispatch_request(request)
if self.session_store is not None:
if request.session.should_save:
self.session_store.save(request.session)
response.set_cookie(
self.config['sessions']['id_header'],
request.session.sid
)
return response(environ, start_response)
示例8: call_backend
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def call_backend(self, environ, start_response):
request = Request(environ)
# Compatibility with django, use request.args preferrably
request.GET = request.args
## Routing / controller loading stuff
map_adapter = self.url_map.bind_to_environ(request.environ)
# By using fcgi, mediagoblin can run under a base path
# like /mediagoblin/. request.path_info contains the
# path inside mediagoblin. If the something needs the
# full path of the current page, that should include
# the basepath.
# Note: urlgen and routes are fine!
request.full_path = environ["SCRIPT_NAME"] + request.path
# python-routes uses SCRIPT_NAME. So let's use that too.
# The other option would be:
# request.full_path = environ["SCRIPT_URL"]
# Fix up environ for urlgen
# See bug: https://bitbucket.org/bbangert/routes/issue/55/cache_hostinfo-breaks-on-https-off
if environ.get('HTTPS', '').lower() == 'off':
environ.pop('HTTPS')
## Attach utilities to the request object
# Do we really want to load this via middleware? Maybe?
session_manager = self.session_manager
request.session = session_manager.load_session_from_cookie(request)
# Attach self as request.app
# Also attach a few utilities from request.app for convenience?
request.app = self
request.db = self.db
request.staticdirect = self.staticdirector
request.locale = translate.get_locale_from_request(request)
request.template_env = template.get_jinja_env(
self.template_loader, request.locale)
def build_proxy(endpoint, **kw):
try:
qualified = kw.pop('qualified')
except KeyError:
qualified = False
return map_adapter.build(
endpoint,
values=dict(**kw),
force_external=qualified)
request.urlgen = build_proxy
# Log user out if authentication_disabled
no_auth_logout(request)
mg_request.setup_user_in_request(request)
request.controller_name = None
try:
found_rule, url_values = map_adapter.match(return_rule=True)
request.matchdict = url_values
except RequestRedirect as response:
# Deal with 301 responses eg due to missing final slash
return response(environ, start_response)
except HTTPException as exc:
# Stop and render exception
return render_http_exception(
request, exc,
exc.get_description(environ))(environ, start_response)
controller = endpoint_to_controller(found_rule)
# Make a reference to the controller's symbolic name on the request...
# used for lazy context modification
request.controller_name = found_rule.endpoint
# pass the request through our meddleware classes
try:
for m in self.meddleware:
response = m.process_request(request, controller)
if response is not None:
return response(environ, start_response)
except HTTPException as e:
return render_http_exception(
request, e,
e.get_description(environ))(environ, start_response)
request = hook_transform("modify_request", request)
request.start_response = start_response
# get the Http response from the controller
try:
response = controller(request)
except HTTPException as e:
response = render_http_exception(
request, e, e.get_description(environ))
# pass the response through the meddlewares
try:
#.........这里部分代码省略.........
示例9: call_backend
# 需要导入模块: from werkzeug.wrappers import Request [as 别名]
# 或者: from werkzeug.wrappers.Request import session [as 别名]
def call_backend(self, environ, start_response):
request = Request(environ)
## Compatibility webob -> werkzeug
request.GET = request.args
request.accept_language = request.accept_languages
request.accept = request.accept_mimetypes
## Routing / controller loading stuff
path_info = request.path
route_match = self.routing.match(path_info)
# By using fcgi, mediagoblin can run under a base path
# like /mediagoblin/. request.path_info contains the
# path inside mediagoblin. If the something needs the
# full path of the current page, that should include
# the basepath.
# Note: urlgen and routes are fine!
request.full_path = environ["SCRIPT_NAME"] + request.path
# python-routes uses SCRIPT_NAME. So let's use that too.
# The other option would be:
# request.full_path = environ["SCRIPT_URL"]
# Fix up environ for urlgen
# See bug: https://bitbucket.org/bbangert/routes/issue/55/cache_hostinfo-breaks-on-https-off
if environ.get('HTTPS', '').lower() == 'off':
environ.pop('HTTPS')
## Attach utilities to the request object
request.matchdict = route_match
request.urlgen = routes.URLGenerator(self.routing, environ)
# Do we really want to load this via middleware? Maybe?
request.session = request.environ['beaker.session']
# Attach self as request.app
# Also attach a few utilities from request.app for convenience?
request.app = self
request.locale = translate.get_locale_from_request(request)
request.template_env = template.get_jinja_env(
self.template_loader, request.locale)
request.db = self.db
request.staticdirect = self.staticdirector
mg_request.setup_user_in_request(request)
# No matching page?
if route_match is None:
# Try to do see if we have a match with a trailing slash
# added and if so, redirect
if not path_info.endswith('/') \
and request.method == 'GET' \
and self.routing.match(path_info + '/'):
new_path_info = path_info + '/'
if request.GET:
new_path_info = '%s?%s' % (
new_path_info, urllib.urlencode(request.GET))
redirect = exc.HTTPFound(location=new_path_info)
return request.get_response(redirect)(environ, start_response)
# Okay, no matches. 404 time!
request.matchdict = {} # in case our template expects it
return render_404(request)(environ, start_response)
# import the controller, or if it's already a callable, call that
route_controller = route_match['controller']
if isinstance(route_controller, unicode) \
or isinstance(route_controller, str):
controller = common.import_component(route_match['controller'])
else:
controller = route_match['controller']
# pass the request through our meddleware classes
for m in self.meddleware:
response = m.process_request(request, controller)
if response is not None:
return response(environ, start_response)
request.start_response = start_response
# get the response from the controller
response = controller(request)
# pass the response through the meddleware
for m in self.meddleware[::-1]:
m.process_response(request, response)
return response(environ, start_response)