axe Туториал просто покажет как правильно и грамотно создать приложение, разместить всё по своим местам.
Если вам нужен простой доступ к request-у как к глобальному объекту из любой точки проекта, то вам понадобится сделать контекстную переменную, пример всё в том же туториале (
http://werkzeug.pocoo.org/documentation/dev/tutorial.html#part-2-the-utilities), обратите там внимание на класс werkzeug.Local. Это безопасно при работе с многопоточностью.
А ещё лучше сам пример напишу:
from werkzeug import Request, Response, Local, LocalManager
local = Local()
local_manager = LocalManager([local])
request = local('request')
def application(environ, start_response):
local.request = Request(environ)
response = main(request) # ваш main
return response(environ, start_response)
application = local_manager.make_middleware(application)
Тут вы можете повсюду импортировать объект request - это контекстная переменная, которая имеет значение только во время обработки запроса, после запроса значение переменной очищается. Как я уже говорил, это абсолютно безопасно для многопоточности, у каждого потока будет своё значение request-та. Что делать с response-ом сами думайте. Советую строить приложение хотя бы приблизительно так, как в документации описано, говорю это не просто так, а по опыту работы над реально не маленьким проектом.