首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Tornado-swirl无法拾取URL中的参数

Tornado-swirl无法拾取URL中的参数
EN

Stack Overflow用户
提问于 2019-07-04 17:00:05
回答 1查看 198关注 0票数 0

我有一个用Tornado构建的应用程序接口,我正在尝试使用tornado-swirl来记录它。由于某些原因,它无法从已定义的URL中选择可选的查询参数。这个问题怎么解决呢?我不确定我做错了什么,也不知道我在这里遗漏了什么。

我更改了模式,甚至使用了docstut中使用的模式。

代码语言:javascript
复制
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

我得到以下错误:

代码语言:javascript
复制
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的方式有关。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-05 03:49:55

您只需通知docstring中的path参数,如下所示:

代码语言:javascript
复制
"""Item

Creating a new item

Path Params:
    id (string) --  Your id

Tags:
    Item
"""
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56884262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档