我有一个Python控制器文件、一个表单和一个javascript文件,在单击表单上的submit按钮时执行ajax代码。表单将正确显示。当我在表单中输入数据时,ajax代码触发并执行驻留在控制器.py文件。当代码执行时,我将“inside class PostRegistration”打印到控制台,然后通过使用代码数据=网络输入(). 当我将数据内容打印到控制台时,我得到“data=”。我希望看到形式名称和价值观。然后我执行一行代码,上面写着print(数据.用户名)但这会生成“keyror:'username'”。我的假设是表单字段名不会被网络输入()命令,但我不确定。如何检索输入到表单输入元素中的数据?非常感谢任何帮助。在
以下是涉及的文件:
在控制器.py在
import web
from Models import RegisterModel
urls = (
'/', 'Home',
'/register', 'Register',
'/postregistration', 'PostRegistration'
)
render = web.template.render("views/templates", base="MainLayout")
app = web.application(urls, globals())
# Classes/Routes
class Home:
def GET(self):
return render.home()
class Register:
def GET(self):
return render.register()
class PostRegistration:
def POST(self):
print("inside class PostRegistration")
data = web.input()
print("data=",data)
print(data.username)
return data
if __name__ == "__main__":
app.run()
在注册.html在
^{pr2}$在脚本.js在
$(document).ready(function(){
console.log("loaded");
$(document).on("submit", "#register-form", function(e){
e.preventDefault();
var form = $('#register-form').serialize();
$.ajax({
url: "/postregistration",
type: "POST",
data: form,
success: function(response){
console.log(response);
}
});
});
});
在主版面.html在
$def with (page)
$var css: static/css/bootstrap3.3.7.css static/css/material.css static/css/ripple.min.css
$var js: static/js/jquery-3.2.1.js static/js/bootstrap3.3.7.js static/js/material.js static/js/ripple.min.js static/js/scripty.js
<html lang="en">
<head>
<meta charset="UTF-8">
<title>CodeWizard</title>
$if self.css:
$for style in self.css.split():
<link rel="stylesheet" href="$style" />
</head>
<body>
<div id="app">
<div class="navbar navbar-info navbar-fixed-top">
<div class="navbar-header">
<a class="navbar-brand">CodeWizard</a>
</div>
<ul class="nav navbar-nav">
<li>
<a class="waves-effect" href="/">Home Feed<div class="ripple-container"></div></a>
</li>
<li>
<a class="waves-effect" href="/discover">Discover<div class="ripple-container"></div></a>
</li>
<li>
<a class="waves-effect" href="/profile">Profile<div class="ripple-container"></div></a>
</li>
<li>
<a class="waves-effect" href="/settings">Settings<div class="ripple-container"></div></a>
</li>
</ul>
<div class="pull-right">
<a href="/register" class="btn btn-raised btn-default waves-effect">Register</a>
</div>
</div>
<br /><br />
$:page
</div>
$if self.js:
$for script in self.js.split():
<script src="$script"></script>
</body>
</html>
目前没有回答
相关问题 更多 >
编程相关推荐