如何绑定html按钮与post请求在Python (Aiohttp)?



我正在开发一个用于测试aiohttp的小项目,并且遇到了一个问题。我有一个html文件与输入表单和一个输入类型="提交"。同时,我创建了& post"one_answers";get"在我的项目视图中的请求,在那里"得到";显示HTML页面和"post"。将用户的数据写入数据库。我检查了"post"。单独(使用邮差),它工作得很好。但是当我点击注册时按钮,它不叫post;函数。如何绑定它们?

文件main.py

import aiohttp_jinja2
import jinja2
from aiohttp.web import Application, View, run_app
from aiohttp.web_response import Response
from aiohttp_jinja2 import template
import os

@template('add_user.html')
async def add_user_handler(request):
return {'path': os.getcwd()}

class AddUserView(View):
async def post(self):
### here I put data to the database
print('example')
return Response(text='Everything is ok!')
async def get(self):
response = await add_user_handler(self.request)
return response

if __name__=='__main__':
app = Application()
aiohttp_jinja2.setup(app, loader=jinja2.FileSystemLoader('./'))
app.router.add_view('/add_user', AddUserView)
run_app(app)

文件add_user.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Add user page</title>
</head>
<body>
<div class="center">
<h2> Hello, this is the register page!</h2>
<p>Put your data here:</p>
<input type="text" name="username" id="username" maxlength=30 minlength=3 placeholder="Username"><br>
<input type="submit" name="submit" id="post" value="Register"><br>
<p>{{path}}</p>
</div>
</body>
</html>

你需要用form标签来包装你的表单:

<form method="post" action="/add_user">
<p>Put your data here:</p>
<input type="text" name="username" id="username" placeholder="Username"><br>
<input type="submit" name="submit" id="post" value="Register"><br>
</form>

相关内容

  • 没有找到相关文章

最新更新