在googleappengin页面加载后删除URL参数

2024-03-29 08:49:32 发布

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

首先,我对网络编程很陌生。我在网上读了很多教程,有些教程已经过时了,所以有点让人困惑。所以,如果我走的是一条根本上错误的道路,我很乐意提出正确的建议。话虽如此,这只是一个有趣的项目,所以如果有一个简单(10行)的方法来获得我想要的东西,我希望今天能看到快速的结果,即使我最终从根本上改变了事情。在

总之,我使用googleappengine(python2.7)做一个简单的计算。我显示一个表单,用户填写值,单击底部的一个按钮,显示一些结果文本和计算结果。这部分工作正常。在

对于我自己的测试,总是重新键入输入值是很烦人的,而且有些字段对于用户来说并不十分明显,所以我希望能够将一个链接发送到“http://buggyapp.appspot.com/calculation?input1=100&input2=200”表单之外的人,并让它填写这两个参数。这部分也行。在

问题是当用户加载这种链接时,更改表单中的一个值,然后单击按钮。它不使用(更改的)表单值,而是使用URL中的值。我想解决这个问题,理想情况下我希望URL栏在页面加载后甚至不显示URL参数。在

我不知道需要什么信息来帮助你发现我做错了什么。在

以下是HTML中的一个部分,它是Jinja2模板:

<form method="post">
  <input value="{{ input1 }}" name="input1">
  <input value="{{ input2 }}" name="input2">
  <button class="submit" type="submit">Calculate</button>
</form>
<p>{{ result }}</p>

下面是python代码:

^{pr2}$

不管我是将计算放在get处理程序还是post处理程序中,它的行为似乎都是一样的。现在,我只是从另一个打电话:

^{3}$

因此,我的下一步是更改表单输入的名称,使它们与URL参数不同,并添加额外的代码来合并潜在的输入源。但是一旦输入的是我想要的,我就不想输入了。它还使生成这些链接的代码部分复杂化。在

我更喜欢只使用Python的解决方案,但我愿意使用javascript。还有其他堆栈溢出问题/答案暗示javascript机制可以满足我的需要,但我对其中任何一个都不太了解,无法将它们应用到我的问题中。在

我肯定我做错了很多其他的事情,我可能把事情简化了,或者没有发布足够的信息。我是来学习的,所以赶紧离开。提前感谢你的帮助。在

太长了,读不下去了,我怎么用URL PARAMS,然后从URL中删除它们,这样它们就不会覆盖后续帖子的表单输入?在


Tags: 代码用户form信息url表单input参数
1条回答
网友
1楼 · 发布于 2024-03-29 08:49:32

httpget请求通常在URL中包含参数,因为没有其他地方传递它们(没有请求主体)。在

httppost请求通常在请求正文中包含参数,但是仍然可以在URL中包含这些参数。在

看起来你在使用某种Javascript来发布表单。确保使用的是POST请求并将参数放入POST主体中。只要发出POST请求,大多数库都会自动将参数放入POST主体中。在

编辑:

默认情况下,表单通常发出POST请求。通常,<form>元素将有一个action属性,该属性指定要发送到的URL。但是,如果它没有action属性,它将向当前URL发出POST请求。在

在您的情况下,当前的URL包含参数,这些参数将与您的请求一起再次提交。你应该有一些选择。在

  1. 在表单中指定action,这样就不会提交到已附加参数的同一个url。

  2. 在请求处理程序中,从post主体(request.POST['input1'])而不是url中读取数据。

相关问题 更多 >