Python bottle 模块,route() 实例源码

我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用bottle.route()

项目:deb-python-falcon    作者:openstack    | 项目源码 | 文件源码
def flask(body, headers):
    import flask

    path = '/hello/<account_id>/test'
    flask_app = flask.Flask('hello')

    @flask_app.route(path)
    def hello(account_id):
        request = flask.request
        user_agent = request.headers['User-Agent']  # NOQA
        limit = request.args.get('limit', '10')  # NOQA

        return flask.Response(body, headers=headers,
                              mimetype='text/plain')

    return flask_app
项目:base1k    作者:xiaq    | 项目源码 | 文件源码
def http(host, port):
    from bottle import route, response, run

    @route('/')
    def root():
        return http_root_str

    @route('/<s:path>')
    def do_conversion(s):
        try:
            i = parse_input(s)
        except ValueError as e:
            response.status = 400
            return str(e)
        return convert(i)

    run(host=host, port=port)
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_unicode(self):
        self.app.route('/')(lambda: touni('äöüß'))
        self.assertBody(touni('äöüß').encode('utf8'))

        self.app.route('/')(lambda: [touni('äö'), touni('üß')])
        self.assertBody(touni('äöüß').encode('utf8'))

        @self.app.route('/')
        def test5():
            bottle.response.content_type='text/html; charset=iso-8859-15'
            return touni('äöüß')
        self.assertBody(touni('äöüß').encode('iso-8859-15'))

        @self.app.route('/')
        def test5():
            bottle.response.content_type='text/html'
            return touni('äöüß')
        self.assertBody(touni('äöüß').encode('utf8'))
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_iterator_with_close(self):
        class MyIter(object):
            def __init__(self, data):
                self.data = data
                self.closed = False
            def close(self):    self.closed = True
            def __iter__(self): return iter(self.data)

        byte_iter = MyIter([tob('abc'), tob('def')])
        unicode_iter = MyIter([touni('abc'), touni('def')])

        for test_iter in (byte_iter, unicode_iter):
            @self.app.route('/')
            def test(): return test_iter
            self.assertInBody('abcdef')
            self.assertTrue(byte_iter.closed)
项目:zenchmarks    作者:squeaky-pl    | 项目源码 | 文件源码
def flask(body, headers):
    import flask

    path = '/hello/<account_id>/test'
    flask_app = flask.Flask('hello')

    @flask_app.route(path)
    def hello(account_id):
        request = flask.request
        user_agent = request.headers['User-Agent']  # NOQA
        limit = request.args.get('limit', '10')  # NOQA

        return flask.Response(body, headers=headers,
                              mimetype='text/plain')

    return flask_app
项目:deb-python-falcon    作者:openstack    | 项目源码 | 文件源码
def bottle(body, headers):
    import bottle
    path = '/hello/<account_id>/test'

    @bottle.route(path)
    def hello(account_id):
        user_agent = bottle.request.headers['User-Agent']  # NOQA
        limit = bottle.request.query.limit or '10'  # NOQA

        return bottle.Response(body, headers=headers)

    return bottle.default_app()
项目:bottle_beginner    作者:denzow    | 项目源码 | 文件源码
def hello():
    """
    route ??????URL???????????????????
    ??????

    ????return???????????????????

    route??????????????????URL??????????????
    :return:
    """
    return "Hello World!"
项目:experiment-manager    作者:softfire-eu    | 项目源码 | 文件源码
def server_static(filename):
    """ route to the css and static files"""
    if ".." in filename:
        return HTTPError(status=403)
    return bottle.static_file(filename, root='%s/static' % get_config('api', 'view-path', '/etc/softfire/views'))


#########
# Utils #
#########
项目:octohook    作者:dsnezhkov    | 项目源码 | 文件源码
def route_server(self, sconfig):
        resource='/server/'
        if 'web' in sconfig and 'hook_route' in sconfig['web']:
            resource=sconfig['web']['hook_route']
        else:
            logging.error(
                "Webrouter: No valid resource route found. Taking defaults {}".
                    format(resource))
        logging.info("Webrouter: starting routing on {}".format(resource))
        bottle.route(resource, 'POST')(self.wsapp.exf_server)
项目:octohook    作者:dsnezhkov    | 项目源码 | 文件源码
def route_client(self, cconfig):
        resource='/client/'
        if 'web' in cconfig and 'hook_route' in cconfig['web']:
            resource=cconfig['web']['hook_route']
        else:
            logging.error(
                "Webrouter: No valid resource route found. Taking defaults {}".
                    format(resource))
        logging.info("Webrouter: starting routing on {}".format(resource))
        bottle.route(resource, 'POST')(self.wsapp.exf_client)
项目:facebook-scrapper    作者:avihai123    | 项目源码 | 文件源码
def show_posts(page_id):
    return template('templates/posts', title='{} Posts'.format(get_page_name(page_id)), page_list=get_page_list(),
                    post_list=get_posts_ordered_by_popularity(page_id), page_id=page_id)


# @route('/<page_name>/')
# def page_name_posts(page_name):
#     return template('templates/posts', title=page_name, page_list=get_page_list(), post_list=get_posts_ordered_by_popularity('40796308305'), page_id='40796308305')
#                     # post_list=get_posts_ordered_by_popularity(page_id), page_id=page_id)


# TODO fix latest template, broken
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_bytes(self):
        self.app.route('/')(lambda: tob('test'))
        self.assertBody('test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_bytearray(self):
        self.app.route('/')(lambda: map(tob, ['t', 'e', 'st']))
        self.assertBody('test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_tuple(self):
        self.app.route('/')(lambda: ('t', 'e', 'st'))
        self.assertBody('test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_emptylist(self):
        self.app.route('/')(lambda: [])
        self.assertBody('')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_none(self):
        self.app.route('/')(lambda: None)
        self.assertBody('')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_error(self):
        self.app.route('/')(lambda: 1/0)
        self.assertStatus(500)
        self.assertInBody('ZeroDivisionError')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_fatal_error(self):
        @self.app.route('/')
        def test(): raise KeyboardInterrupt()
        self.assertRaises(KeyboardInterrupt, self.assertStatus, 500)
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_file(self):
        self.app.route('/')(lambda: tobs('test'))
        self.assertBody('test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_json(self):
        self.app.route('/')(lambda: {'a': 1})
        try:
            self.assertBody(bottle.json_dumps({'a': 1}))
            self.assertHeader('Content-Type','application/json')
        except ImportError:
            warn("Skipping JSON tests.")
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_json_HTTPResponse(self):
        self.app.route('/')(lambda: bottle.HTTPResponse({'a': 1}, 500))
        try:
            self.assertBody(bottle.json_dumps({'a': 1}))
            self.assertHeader('Content-Type','application/json')
        except ImportError:
            warn("Skipping JSON tests.")
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_json_HTTPError(self):
        self.app.error(400)(lambda e: e.body)
        self.app.route('/')(lambda: bottle.HTTPError(400, {'a': 1}))
        try:
            self.assertBody(bottle.json_dumps({'a': 1}))
            self.assertHeader('Content-Type','application/json')
        except ImportError:
            warn("Skipping JSON tests.")
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_generator_callback(self):
        @self.app.route('/')
        def test():
            bottle.response.headers['Test-Header'] = 'test'
            yield 'foo'
        self.assertBody('foo')
        self.assertHeader('Test-Header', 'test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_empty_generator_callback(self):
        @self.app.route('/')
        def test():
            yield
            bottle.response.headers['Test-Header'] = 'test'
        self.assertBody('')
        self.assertHeader('Test-Header', 'test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_error_in_generator_callback(self):
        @self.app.route('/')
        def test():
            yield 1/0
        self.assertStatus(500)
        self.assertInBody('ZeroDivisionError')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_httperror_in_generator_callback(self):
        @self.app.route('/')
        def test():
            yield
            bottle.abort(404, 'teststring')
        self.assertInBody('teststring')
        self.assertInBody('404 Not Found')
        self.assertStatus(404)
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_httpresponse_in_generator_callback(self):
        @self.app.route('/')
        def test():
            yield bottle.HTTPResponse('test')
        self.assertBody('test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_unicode_generator_callback(self):
        @self.app.route('/')
        def test():
            yield touni('äöüß')
        self.assertBody(touni('äöüß').encode('utf8'))
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_invalid_generator_callback(self):
        @self.app.route('/')
        def test():
            yield 1234
        self.assertStatus(500)
        self.assertInBody('Unsupported response type')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test__header(self):
        @bottle.route('/')
        @bottle.auth_basic(lambda x, y: False)
        def test(): return {}
        self.assertStatus(401)
        self.assertHeader('Www-Authenticate', 'Basic realm="private"')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_get(self):
        """ WSGI: GET routes"""
        @bottle.route('/')
        def test(): return 'test'
        self.assertStatus(404, '/not/found')
        self.assertStatus(405, '/', post="var=value")
        self.assertBody('test', '/')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_post(self):
        """ WSGI: POST routes"""
        @bottle.route('/', method='POST')
        def test(): return 'test'
        self.assertStatus(404, '/not/found')
        self.assertStatus(405, '/')
        self.assertBody('test', '/', post="var=value")
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_headget(self):
        """ WSGI: HEAD routes and GET fallback"""
        @bottle.route('/get')
        def test(): return 'test'
        @bottle.route('/head', method='HEAD')
        def test2(): return 'test'
        # GET -> HEAD
        self.assertStatus(405, '/head')
        # HEAD -> HEAD
        self.assertStatus(200, '/head', method='HEAD')
        self.assertBody('', '/head', method='HEAD')
        # HEAD -> GET
        self.assertStatus(200, '/get', method='HEAD')
        self.assertBody('', '/get', method='HEAD')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_request_attrs(self):
        """ WSGI: POST routes"""
        @bottle.route('/')
        def test():
            self.assertEqual(bottle.request.app,
                             bottle.default_app())
            self.assertEqual(bottle.request.route,
                             bottle.default_app().routes[0])
            return 'foo'
        self.assertBody('foo', '/')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_500(self):
        """ WSGI: Exceptions within handler code (HTTP 500) """
        @bottle.route('/')
        def test(): return 1/0
        self.assertStatus(500, '/')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_500_unicode(self):
        @bottle.route('/')
        def test(): raise Exception(touni('Unicode äöüß message.'))
        self.assertStatus(500, '/')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_utf8_url(self):
        """ WSGI: UTF-8 Characters in the URL """
        @bottle.route('/my-öäü/:string')
        def test(string): return string
        self.assertBody(tob('urf8-öäü'), '/my-öäü/urf8-öäü')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_401(self):
        """ WSGI: abort(401, '') (HTTP 401) """
        @bottle.route('/')
        def test(): bottle.abort(401)
        self.assertStatus(401, '/')
        @bottle.error(401)
        def err(e):
            bottle.response.status = 200
            return str(type(e))
        self.assertStatus(200, '/')
        self.assertBody("<class 'bottle.HTTPError'>",'/')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_303(self):
        """ WSGI: redirect (HTTP 303) """
        @bottle.route('/')
        def test(): bottle.redirect('/yes')
        @bottle.route('/one')
        def test2(): bottle.redirect('/yes',305)
        env = {'SERVER_PROTOCOL':'HTTP/1.1'}
        self.assertStatus(303, '/', env=env)
        self.assertHeader('Location', 'http://127.0.0.1/yes', '/', env=env)
        env = {'SERVER_PROTOCOL':'HTTP/1.0'}
        self.assertStatus(302, '/', env=env)
        self.assertHeader('Location', 'http://127.0.0.1/yes', '/', env=env)
        self.assertStatus(305, '/one', env=env)
        self.assertHeader('Location', 'http://127.0.0.1/yes', '/one', env=env)
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_cookie(self):
        """ WSGI: Cookies """
        @bottle.route('/cookie')
        def test():
            bottle.response.set_cookie('b', 'b')
            bottle.response.set_cookie('c', 'c', path='/')
            return 'hello'
        try:
            c = self.urlopen('/cookie')['header'].get_all('Set-Cookie', '')
        except:
            c = self.urlopen('/cookie')['header'].get('Set-Cookie', '').split(',')
            c = [x.strip() for x in c]
        self.assertTrue('b=b' in c)
        self.assertTrue('c=c; Path=/' in c)
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_single_path(self):
        @bottle.route('/a')
        def test(): return 'ok'
        self.assertBody('ok', '/a')
        self.assertStatus(404, '/b')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_path_list(self):
        @bottle.route(['/a','/b'])
        def test(): return 'ok'
        self.assertBody('ok', '/a')
        self.assertBody('ok', '/b')
        self.assertStatus(404, '/c')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_no_path(self):
        @bottle.route()
        def test(x=5): return str(x)
        self.assertBody('5', '/test')
        self.assertBody('6', '/test/6')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_no_params_at_all(self):
        @bottle.route
        def test(x=5): return str(x)
        self.assertBody('5', '/test')
        self.assertBody('6', '/test/6')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_method_list(self):
        @bottle.route(method=['GET','post'])
        def test(): return 'ok'
        self.assertBody('ok', '/test', method='GET')
        self.assertBody('ok', '/test', method='POST')
        self.assertStatus(405, '/test', method='PUT')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_apply(self):
        def revdec(func):
            def wrapper(*a, **ka):
                return reversed(func(*a, **ka))
            return wrapper

        @bottle.route('/nodec')
        @bottle.route('/dec', apply=revdec)
        def test(): return '1', '2'
        self.assertBody('21', '/dec')
        self.assertBody('12', '/nodec')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_apply_list(self):
        def revdec(func):
            def wrapper(*a, **ka):
                return reversed(func(*a, **ka))
            return wrapper
        def titledec(func):
            def wrapper(*a, **ka):
                return ''.join(func(*a, **ka)).title()
            return wrapper

        @bottle.route('/revtitle', apply=[revdec, titledec])
        @bottle.route('/titlerev', apply=[titledec, revdec])
        def test(): return 'a', 'b', 'c'
        self.assertBody('cbA', '/revtitle')
        self.assertBody('Cba', '/titlerev')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_hooks(self):
        @bottle.route()
        def test():
            return bottle.request.environ.get('hooktest','nohooks')
        @bottle.hook('before_request')
        def hook():
            bottle.request.environ['hooktest'] = 'before'
        @bottle.hook('after_request')
        def hook():
            bottle.response.headers['X-Hook'] = 'after'
        self.assertBody('before', '/test')
        self.assertHeader('X-Hook', 'after', '/test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_template(self):
        @bottle.route(template='test {{a}} {{b}}')
        def test(): return dict(a=5, b=6)
        self.assertBody('test 5 6', '/test')
项目:Pardus-Bulut    作者:ferhatacikalin    | 项目源码 | 文件源码
def test_name(self):
        @bottle.route(name='foo')
        def test(x=5): return 'ok'
        self.assertEquals('/test/6', bottle.url('foo', x=6))