from os.path import realpath, dirname import rivr from rivr.template.defaulttags import register as tag_lib from rivr.template.defaultfilters import register as filter_lib template_dir = dirname(realpath(__file__)) def view(request): return rivr.TemplateResponse(request, 'example_template.html', { 'tag_list': tag_lib.tags, 'filter_list': filter_lib.filters, }) if __name__ == '__main__': rivr.serve(rivr.TemplateMiddleware(template_dir, rivr.Router( (r'^$', rivr.direct_to_template, { 'template': 'example_template.html', 'extra_context': { 'tag_list': tag_lib.tags, 'filter_list': filter_lib.filters, }}), (r'^view/$', view) )))
# Loaded into global space so they're always in memory with open('messages.txt') as fp: global messages messages = fp.readlines() with open('gifs.txt') as fp: global gifs gifs = fp.readlines() class ShouldView(rivr.views.TemplateView): template_name = 'should.html' def get_context_data(request, **kwargs): return { 'message': random.choice(messages).strip(), 'gif': random.choice(gifs).strip(), 'params': kwargs, } template_dir = path.dirname(path.realpath(__file__)) app = rivr.MiddlewareController.wrap(ShouldView.as_view(), rivr.TemplateMiddleware(template_dirs=template_dir), ) wsgi = WSGIHandler(app) if __name__ == '__main__': rivr.serve(app)
kwargs = { 'template_object_name': 'page', } @rivr.mongodb def add_view(request): if request.method == 'POST': return ResponseRedirect('/%s/' % request.mongodb_collection.save(request.POST)) return rivr.TemplateResponse(request, 'page_add.html', {}) @rivr.mongodb def edit_view(request, object_id): if request.method == 'POST': request.mongodb_collection.update({'_id': ObjectId(object_id)}, request.POST) return ResponseRedirect('/%s/' % object_id) return object_detail(request, template_name='page_edit.html', **kwargs) if __name__ == '__main__': rivr.serve(rivr.MongoDBMiddleware('localhost', 27017, 'rivr_test', 'pages', rivr.TemplateMiddleware(template_dir, rivr.Router( (r'^$', object_list, kwargs), (r'^add/$', add_view), (r'^(?P<object_id>[\w\d]+)/edit/$', edit_view), (r'^(?P<object_id>[\w\d]+)/delete/$', delete_object, kwargs), (r'^(?P<object_id>[\w\d]+)/$', object_detail, kwargs) ) ) ))
""" if __name__ == '__main__': try: Task.create_table() Task.create(text='My first task') Task.create(text='Another task') except: # Database is already created pass loader = DictLoader({ 'task_list.html': TASK_LIST_TEMPLATE, 'task_detail.html': TASK_DETAIL_TEMPLATE, }) environment = Environment(loader=loader) router = Router( (r'^$', TaskListView.as_view()), (r'^tasks/(?P<pk>[\d]+)$', TaskDetailView.as_view()), ) view = MiddlewareController.wrap(router, database, JinjaMiddleware(environment) ) serve(view)
import rivr class ExampleAuthMiddleware(rivr.AuthMiddleware): def check_password(self, username, password): return username == 'kylef' and password == 'letmein' def hello_world(request): return rivr.Response('Hello, {}!'.format(request.user.username), content_type='text/plain') if __name__ == '__main__': rivr.serve(ExampleAuthMiddleware.wrap(hello_world))
import rivr def hello_world(request): return rivr.Response('Hello, World!', content_type='text/plain') if __name__ == '__main__': rivr.serve(hello_world)
import rivr def auth_handler(username, password): return username == 'kylef' and password == 'letmein' def hello_world(request): return rivr.Response('Hello, World!', content_type='text/plain') if __name__ == '__main__': rivr.serve(rivr.AuthMiddleware(auth_handler, hello_world))
import rivr def view(request): raise Exception, "Debugger example" if __name__ == '__main__': rivr.serve(view)
with open('messages.txt') as fp: global messages messages = fp.readlines() with open('gifs.txt') as fp: global gifs gifs = fp.readlines() class ShouldView(rivr.views.TemplateView): template_name = 'should.html' def get_context_data(request, **kwargs): return { 'message': random.choice(messages).strip(), 'gif': random.choice(gifs).strip(), 'params': kwargs, } template_dir = path.dirname(path.realpath(__file__)) app = rivr.MiddlewareController.wrap( ShouldView.as_view(), rivr.TemplateMiddleware(template_dirs=template_dir), ) wsgi = WSGIHandler(app) if __name__ == '__main__': rivr.serve(app)
import rivr def index(request): return rivr.Response('index view.') def test(request): return rivr.Response('test view.') router = rivr.Router( (r'^$', index), (r'^test/$', test) ) def example(request): return rivr.Response('Example view. Showing the register command on a router.') router.register(r'^example/$', example) def page(request, slug): return rivr.Response('page view, slug is `%s`' % slug) router.register(r'^(?P<slug>[-\w]+)/$', page) if __name__ == '__main__': rivr.serve(router)
from rivr import serve from palaverapi.views import app if __name__ == '__main__': serve(app)
import rivr def view(request): raise Exception, "Debugger example" if __name__ == '__main__': rivr.serve(rivr.DebugMiddleware(view))
import rivr def index(request): return rivr.Response('index view.') def test(request): return rivr.Response('test view.') def array(request): if request.path == '/array/': return rivr.Response('array view.') raise rivr.Http404 def another_view(request): return rivr.Response('another view.') if __name__ == '__main__': rivr.serve(rivr.DebugMiddleware(rivr.Array( rivr.Router( (r'^$', index), (r'^test/$', test) ), array, another_view )))
import rivr def index(request): return rivr.Response('index view.') def test(request): return rivr.Response('test view.') router = rivr.Router( (r'^$', index), (r'^test/$', test) ) @router.register(r'^example/$') def example(request): return rivr.Response('Example view. Showing the register decorator.') def page(request, slug): return rivr.Response('page view, slug is `%s`' % slug) router.register(r'^(?P<slug>[-\w]+)/$', page) if __name__ == '__main__': rivr.serve(rivr.ErrorWrapper(router))
import rivr class ExampleMiddleware(rivr.Middleware): def process_request(self, request): return rivr.Response("Hello World") def view(request): raise Exception, "Debugger example" if __name__ == '__main__': rivr.serve(rivr.MiddlewareController.wrap(view, ExampleMiddleware(), # This example middleware will run instead of our view on process_request rivr.DebugMiddleware(), ))
import rivr def index(request): return rivr.Response('Welcome to localhost!') def profile(request, user): return rivr.Response('Welcome to %s\'s profile' % user) if __name__ == '__main__': rivr.serve(rivr.Domain( (r'^localhost/$', index), # domain homepages (r'^(?P<user>[-\w]+).localhost/$', profile), # user.domain (r'^localhost/(?P<user>[-\w]+)/$', profile) # domain/user ))
class UsersResource(Resource): uri_template = '/users' def get_relations(self): return { 'users': [ UserResource(parameters={'username': '******'}), UserResource(parameters={'username': '******'}), ] } class UserResource(Resource): uri_template = '/users/{username}' def get_attributes(self): return { 'username': self.parameters['username'], } router = Router( UsersResource, UserResource, ) router.add_root_resource('users', UsersResource) if __name__ == '__main__': serve(router)