tornado URL 和 HTML 表单

3 投票
2 回答
1820 浏览
提问于 2025-04-18 10:37

我正在使用tornado框架,想要从一个HTML表单中把一些数据插入到我的MongoDB数据库里。

在我的HTML文件中,有一个这样的表单:

<form method="get" > 

这个表单里有两个文本框和一个提交按钮。

但是我不知道“action”应该设置成什么。

我有一个处理类,里面有一个叫“post”的函数,代码如下:

 class MyHandler(tornado.web.RequestHandler):
  def post(self):
     name  = self.get_argument("Name", "")
     index = self.get_argument("Index","")
      .... code for updating MongoDB

我还有一个叫BaseUrl.py的文件,里面包含了:

(/admin/edit[/]?',MyHandler  )

但是似乎我在myHandler里的“post”函数没有被执行。

你能给我一些建议,告诉我如何正确设置我的URL和表单的action吗?

2 个回答

1

你的表单方法没有被调用,因为你的表单里写的是 method="get"。把它改成 method="post",这样可能就能正常工作了。

如果动作(action)是空的,浏览器会把请求提交到当前页面。所以如果你在同一个网址有处理表单的 get 方法,就不需要特别指定它了。

2

把表单的方法改成POST,因为你是在处理一个POST请求:

<form method="POST" >

如果这个表单是从不同的页面发出的,你还需要提供一个动作,所以你的表单应该是:

<form method="POST" action="/admin/edit">

撰写回答