如何在Tornado中获得表单POST输入?

Jan*_*and 5 python forms tornado

我是Tornado框架的新手,并尝试制作一个简单的表单来上传图片:

<form method="post" action="/uploads/{{uid}}/" enctype="multipart/form-data"  >
    <input type="file" name="file1" /> <br />
  Image info: <input type="text" name="alt" /> <br />
<input class="button" type="submit" value="Upload" class="button" /> 
</form>
Run Code Online (Sandbox Code Playgroud)

我可以使用以下方法成功接收Posted文件:

if 'file1' in self.request.files:
            if self.request.files['imgfile'][0]: 
                    file1 = self.request.files['imgfile'][0] 
Run Code Online (Sandbox Code Playgroud)

但是我无法收到alt输入.我试过alt = self.request.alt但是我得到了这个错误

AttributeError: 'HTTPServerRequest' object has no attribute 'alt'
Run Code Online (Sandbox Code Playgroud)

当我使用时 alt = self.request.files['alt'],我得到:

  KeyError: 'alt'
Run Code Online (Sandbox Code Playgroud)

我没有想法,所以感谢你的帮助.

更新:

我发现这有效:

alt = self.get_argument('alt')
Run Code Online (Sandbox Code Playgroud)

但仍然需要更好的解决方案.

Dre*_*her 6

请尝试以下代码

self.get_body_argument("alt", default=None, strip=False)
Run Code Online (Sandbox Code Playgroud)