如何使用同一个处理程序处理多个提交表单?(谷歌应用程序enginepython)

2024-04-30 11:24:04 发布

您现在位置:Python中文网/ 问答频道 /正文

AdminPage中,我创建了几个表单来编辑数据库中的表单字段;所有表单都引用action=/adminpage

<form name="submit_form" action="/adminpage" method="post">

然后我创建了一个def post(self):来处理每个表单,例如

^{pr2}$

等等。在

显然这是错误的,因为每一个def post(self):都是独立工作的;只有当我添加其他元素时,它们才不起作用。在

我搜索了如何将表单的名称传递给脚本,但找不到任何有用的东西。您对处理每个表单而不为每个表单创建单独的处理程序有何建议?谢谢!在


Tags: nameselfform数据库编辑表单defaction
2条回答

首先,为每个表单使用单独的处理程序有什么问题?如果你决定走这条路,你有几个选择。您可以检查referer URL来查看用户来自哪个页面,并推断提交了什么。另一个选择是在每个表单中放置一个隐藏字段,指定要提交的表单。在

请注意,使用这两种方法中的任何一种,恶意用户都可以轻松地对系统进行游戏,使您认为您正在处理不同类型的表单。这是不是一个问题取决于你。如果您确实想对多个表单使用同一个处理程序,请确保不要将执行特权操作的表单混合在一起。在

您可以在每个表单中添加一个隐藏的输入元素,然后使用该字段的值来区分页面上的不同表单。E、 g.:

<input type="text" name="form_name" value="submit_form" style="display:none"></input>

然后您可以在post()中使用form_name的值来确定要提交哪个表单。在

相关问题 更多 >