Итак, я пытаюсь создать простую регистрационную форму, чтобы пользователи могли вводить свои данные и отправлять их на обработку. У меня проблемы с получением данных формы. По способу настройки сайта у меня есть форма «/ register», которая затем отправляет запрос ajax на URL-адрес «/ postregister». Оттуда входит в класс, который получает данные из web.input (), а затем ссылается на данные для всего, что мне нужно. Или, по крайней мере, это намерение ...
Проблема, с которой я столкнулся, заключается в самом первом шаге: захват данных формы со страницы «/ register». Фактически ничего не передается.
Вот файл register.html
<div class="container">
<h2>Register Account</h2>
<br /><br />
<form id="register-form">
<div class="form-group label-static is-empty>
<label for="username" class="control-label">Username</label>
<input id="username" class="form-control" type="text" placeholder="Choose a username..."/>
</div>
<button type="submit" class="btn btn-info">Submit </button>
</form>
</div>
Главный controller.py:
import web
urls = (
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
)
render = web.template.render("Views/Templates", base="MainLayout")
app = web.application(urls, globals())
class Home:
def GET(self):
return render.Home()
class Register:
def GET(self):
return self.Register()
class PostRegistration:
def POST(self):
data = web.input()
print "data: " + str(data) # This line is for debugging
return data.username
if __name__ == "__main__":
app.run()
плюс js:
$(document).ready(function() {
console.log("loaded");
$(document).on("submit", "#register-form", function(e) {
e.preventDefault();
var form = $("#register-form").serialize();
console.log(form); //This is just for debugging
$.ajax({
url: '/postregistration',
type: 'POST',
data: form,
success: function(response){
console.log(response);
}
});
});
});
Когда я запускаю controller.py и перехожу к localhost: 8080 / register, мне предлагается заполнить форму. Успех! Теперь я ввожу информацию и нажимаю "Отправить". Проблема !! При проверке журнала консоли форма фактически не записывается. Возникает «AttributeError» с AttributeError: 'username'. И конечно же, controller.py напечатает:
data: <storage {}>
Итак, я вижу, что web.input () не получает данных. Возвращаясь немного назад, в веб-консоли я вижу, что написано «загружено», затем, когда я нажимаю «Отправить», я вижу, что что-то (но на самом деле ничего) записывается в консоль. Опять же, все признаки указывают на то, что я не собираю данные формы. Есть идеи, где я ошибся?