#python #html #tornado
#python #HTML #tornado
Вопрос:
Я использую tornado и хочу вставить что-то в свой MongoDB из значений в форме HTML.
в HTML-файле у меня есть такая форма:
<form method="get" >
с 2 текстовыми полями и кнопкой отправки.
и я не знаю, что установить как «действие»
У меня есть класс-обработчик с функцией под названием «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 )
но, похоже, функция «post» в MyHandler не выполняется.
не могли бы вы дать мне несколько советов о том, как правильно настроить мои URL-адреса и действия формы?
Ответ №1:
Измените метод формы на POST, поскольку вы обрабатываете запрос POST:
<form method="POST" >
Вам также необходимо указать действие, если форма подается с другой страницы, поэтому ваша форма должна быть:
<form method="POST" action="/admin/edit">
Ответ №2:
Ваш метод post не вызывается, потому что ваша форма указывает method="get"
. Измените это на method="post"
, и это, вероятно, сработает.
Если действие пустое, браузер отправит запрос на текущую страницу, поэтому, если у вас есть обработчик get, обслуживающий форму по тому же URL, вам не нужно его указывать.
Комментарии:
1. спасибо, пользователь3763140, но я изменил свой метод на «post», и он по-прежнему не работает, я думаю, что должна быть другая проблема.
2. На какой странице вы находитесь, когда заполняете форму? Если это /admin/edit, вам не нужен атрибут action, если нет, то добавление
action="/admin/edit"
необходимо.