龙卷风漩涡未在 URL 中拾取参数
Tornado-swirl not picking up the params in a URL
我有一个内置于 Tornado
中的 API,我正在尝试使用 tornado-swirl
对其进行记录。由于某种原因,它无法从定义的 URL 中选择可选的查询参数。这怎么能解决?我不确定我做错了什么,或者我在这里遗漏了什么。
import tornado.web
import tornado_swirl as swirl
from .base import BaseHandler
@swirl.restapi('/item/(?P<id>[\w-]+)?')
class ItemHandler(BaseHandler):
def post(self, id):
"""Item
Creating a new item
Tags:
Item
"""
# store the item
pass
async def get(self, id):
"""Item
Get items or item
Tags:
Item
"""
# return all items if no id was provided
# or return item by id when provided
pass
我收到以下错误:
Traceback (most recent call last):
File "/Users/.../venv/lib/python3.7/site-packages/tornado/web.py", line 1697, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 101, in get
for path, spec, operations in apis},
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 100, in <dictcomp>
'paths': {path: self.__get_api_spec(spec, operations)
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 368, in find_api
['{%s}' % arg for arg in [param.name for param in vals]]
TypeError: not enough arguments for format string
显然,它没有得到参数。我认为这与我在那里定义 URL 的方式有关。
你只需要在文档字符串中告知路径参数,像这样:
"""Item
Creating a new item
Path Params:
id (string) -- Your id
Tags:
Item
"""
我有一个内置于 Tornado
中的 API,我正在尝试使用 tornado-swirl
对其进行记录。由于某种原因,它无法从定义的 URL 中选择可选的查询参数。这怎么能解决?我不确定我做错了什么,或者我在这里遗漏了什么。
import tornado.web
import tornado_swirl as swirl
from .base import BaseHandler
@swirl.restapi('/item/(?P<id>[\w-]+)?')
class ItemHandler(BaseHandler):
def post(self, id):
"""Item
Creating a new item
Tags:
Item
"""
# store the item
pass
async def get(self, id):
"""Item
Get items or item
Tags:
Item
"""
# return all items if no id was provided
# or return item by id when provided
pass
我收到以下错误:
Traceback (most recent call last):
File "/Users/.../venv/lib/python3.7/site-packages/tornado/web.py", line 1697, in _execute
result = method(*self.path_args, **self.path_kwargs)
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 101, in get
for path, spec, operations in apis},
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 100, in <dictcomp>
'paths': {path: self.__get_api_spec(spec, operations)
File "/Users/.../venv/lib/python3.7/site-packages/tornado_swirl/views.py", line 368, in find_api
['{%s}' % arg for arg in [param.name for param in vals]]
TypeError: not enough arguments for format string
显然,它没有得到参数。我认为这与我在那里定义 URL 的方式有关。
你只需要在文档字符串中告知路径参数,像这样:
"""Item
Creating a new item
Path Params:
id (string) -- Your id
Tags:
Item
"""