首先,我对网络编程很陌生。我在网上读了很多教程,有些教程已经过时了,所以有点让人困惑。所以,如果我走的是一条根本上错误的道路,我很乐意提出正确的建议。话虽如此,这只是一个有趣的项目,所以如果有一个简单(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中删除它们,这样它们就不会覆盖后续帖子的表单输入?在
httpget请求通常在URL中包含参数,因为没有其他地方传递它们(没有请求主体)。在
httppost请求通常在请求正文中包含参数,但是仍然可以在URL中包含这些参数。在
看起来你在使用某种Javascript来发布表单。确保使用的是POST请求并将参数放入POST主体中。只要发出POST请求,大多数库都会自动将参数放入POST主体中。在
编辑:
默认情况下,表单通常发出POST请求。通常,
<form>
元素将有一个action
属性,该属性指定要发送到的URL。但是,如果它没有action
属性,它将向当前URL发出POST请求。在在您的情况下,当前的URL包含参数,这些参数将与您的请求一起再次提交。你应该有一些选择。在
在表单中指定
action
,这样就不会提交到已附加参数的同一个url。在请求处理程序中,从post主体(
request.POST['input1']
)而不是url中读取数据。相关问题 更多 >
编程相关推荐