本文整理汇总了Python中klein.Klein.route方法的典型用法代码示例。如果您正苦于以下问题:Python Klein.route方法的具体用法?Python Klein.route怎么用?Python Klein.route使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类klein.Klein
的用法示例。
在下文中一共展示了Klein.route方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_private_not_visible
# 需要导入模块: from klein import Klein [as 别名]
# 或者: from klein.Klein import route [as 别名]
def test_private_not_visible(self):
"""
When an endpoint is decorated with ``@private_api`` it is
omitted from result of ``makeRst``.
"""
app = Klein()
@private_api
def g():
pass
app.route(b"/g", methods=[b"GET"])(g)
rest = list(makeRst(b"/", "section", app, None, {}))
self.assertEqual(rest, [])
示例2: test_routes
# 需要导入模块: from klein import Klein [as 别名]
# 或者: from klein.Klein import route [as 别名]
def test_routes(self):
"""
L{getRoutes} returns all the defined routes and their attributes.
"""
app = Klein()
def f():
pass
f.attr = "attr"
def g():
pass
g.attr = "G"
app.route(b"/", methods=[b"GET"])(f)
app.route(b"/g", methods=[b"PUT", b"OPTIONS"])(g)
routes = sorted(getRoutes(app))
self.assertEqual(routes, [
KleinRoute(methods={b"GET"}, path=b"/", endpoint="f",
attributes={'attr': 'attr'}),
KleinRoute(methods={b'PUT', b'OPTIONS'}, path=b'/g', endpoint='g',
attributes={'attr': 'G'})])
示例3: transaction_id
# 需要导入模块: from klein import Klein [as 别名]
# 或者: from klein.Klein import route [as 别名]
api,
"execute",
capability_version,
capability_hash, '')
links.append({"href": capability_url, "rel": "capability"})
return links
else:
return url
def transaction_id(request):
"""
Extract the transaction id from the given request.
:param IRequest request: The request we are trying to get the
transaction id for.
:returns: A string transaction id.
"""
return request.responseHeaders.getRawHeaders('X-Response-Id')[0]
app = Klein()
app.route = partial(app.route, strict_slashes=False)
root = Resource()
root.putChild('v1.0', app.resource())
root.putChild('', Data('', 'text/plain'))
示例4: Klein
# 需要导入模块: from klein import Klein [as 别名]
# 或者: from klein.Klein import route [as 别名]
from twisted.web.template import tags, slot
from klein import Klein, Plating
app = Klein()
myStyle = Plating(
tags=tags.html(
tags.head(tags.title(slot("pageTitle"))),
tags.body(tags.h1(slot("pageTitle"), Class="titleHeading"),
tags.div(slot(Plating.CONTENT)))
),
defaults={"pageTitle": "Places & Foods"}
)
@myStyle.routed(
app.route("/"),
tags.div(
tags.h2("Sample Places:"),
tags.ul([tags.li(tags.a(href=["/places/", place])(place))
for place in ["new york", "san francisco", "shanghai"]]),
tags.h2("Sample Foods:"),
tags.ul([tags.li(tags.a(href=["/foods/", food])(food))
for food in ["hamburgers", "cheeseburgers", "hot dogs"]]),
))
def root(request):
return {}
@myStyle.routed(app.route("/foods/<food>"),
tags.table(border="2", style="color: blue")(
tags.tr(tags.td("Name:"), tags.td(slot("name"))),
tags.tr(tags.td("Deliciousness:"),
示例5: PlatingTests
# 需要导入模块: from klein import Klein [as 别名]
# 或者: from klein.Klein import route [as 别名]
class PlatingTests(TestCase):
"""
Tests for L{Plating}.
"""
def setUp(self):
"""
Create an app and a resource wrapping that app for this test.
"""
self.app = Klein()
self.kr = self.app.resource()
def get(self, uri):
"""
Issue a virtual GET request to the given path that is expected to
succeed synchronously, and return the generated request object and
written bytes.
"""
request = requestMock(uri)
d = _render(self.kr, request)
self.successResultOf(d)
return request, request.getWrittenData()
def test_template_html(self):
"""
Rendering a L{Plating.routed} decorated route results in templated
HTML.
"""
@page.routed(self.app.route("/"),
tags.span(slot("ok")))
def plateMe(request):
return {"ok": "test-data-present"}
request, written = self.get(b"/")
self.assertIn(b'<span>test-data-present</span>', written)
self.assertIn(b'<title>default title unchanged</title>', written)
def test_template_json(self):
"""
Rendering a L{Plating.routed} decorated route with a query parameter
asking for JSON will yield JSON instead.
"""
@page.routed(self.app.route("/"),
tags.span(slot("ok")))
def plateMe(request):
return {"ok": "an-plating-test"}
request, written = self.get(b"/?json=true")
self.assertEqual(
request.responseHeaders.getRawHeaders(b'content-type')[0],
b'text/json; charset=utf-8'
)
self.assertEquals({"ok": "an-plating-test",
"title": "default title unchanged"},
json.loads(written.decode('utf-8')))
def test_template_numbers(self):
"""
Data returned from a plated method may include numeric types (integers,
floats, and possibly longs), which although they are not normally
serializable by twisted.web.template, will be converted by plating into
their decimal representation.
"""
@page.routed(self.app.route("/"),
tags.div(tags.span(slot("anInteger")),
tags.i(slot("anFloat")),
tags.b(slot("anLong")),
))
def plateMe(result):
return {"anInteger": 7,
"anFloat": 3.2,
"anLong": 0x10000000000000001}
request, written = self.get(b"/")
self.assertIn(b"<span>7</span>", written)
self.assertIn(b"<i>3.2</i>", written)
self.assertIn(b"<b>18446744073709551617</b>", written)
def test_render_list(self):
"""
The C{:list} renderer suffix will render the slot named by the renderer
as a list, filling each slot.
"""
@page.routed(self.app.route("/"),
tags.ul(tags.li(slot("item"),
render="subplating:list")))
def rsrc(request):
return {"subplating": [1, 2, 3]}
request, written = self.get(b"/")
self.assertIn(b'<ul><li>1</li><li>2</li><li>3</li></ul>', written)
self.assertIn(b'<title>default title unchanged</title>', written)
def test_widget_html(self):
"""
When L{Plating.widgeted} is applied as a decorator, it gives the
decorated function a C{widget} attribute which is a version of the
function with a modified return type that turns it into a renderable
HTML sub-element that may fill a slot.
"""
@page.routed(self.app.route("/"),
tags.div(slot("widget")))
def rsrc(request):
return {"widget": enwidget.widget(3, 4)}
#.........这里部分代码省略.........