是否有一种简单的方法可以访问龙卷风中的帖子的所有值,而不必为每个帖子指定参数?目前,只需将它们打印到屏幕上即可。
我可以像这样通过RequestHandler.request.arguments进行迭代:
for f in self.request.arguments:
details += "<hr/>" + f
而且我可以返回单个值,例如:
RequestHandler.get_argument("ArgumentName", default=None, strip=False)
但是,如何动态返回通过表单发送的所有值?
我必须像这样每个人都呼叫
get_argument
吗? for f in self.request.arguments:
details += "<hr/>" + self.get_argument(f, default=None, strip=False)
这是RequestHandler目前的样子:
class Sent(tornado.web.RequestHandler):
def post(self):
details = ""
for f in self.request.arguments:
details += "<hr/>" + self.get_argument(f, default=None, strip=False)
self.write(details)
最佳答案
arguments
实际上是一本字典(这就是为什么对其进行迭代仅为其提供键的原因),因此您可以使用values()
方法:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import textwrap
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class TestHandler(tornado.web.RequestHandler):
def post(self):
details = ""
for f in self.request.arguments.values():
details += "<hr/>" + ", ".join(f)
self.write(details)
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", TestHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
我还使用
join()
方法,因为该字典的值是列表。关于python - 迭代self.request.arguments的所有值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27606844/