我完全理解两者在表单处理,用户自由裁量权和数据隐私方面的差异,但在什么情况下,在发送表单结果时,有人会在什么情况下使用GET而不是POST?
谢谢
我正在尝试更多地了解Flask的项目,我想知道是否有人可以向我解释为什么示例代码列出方法'GET'和'POST',当它只尝试处理登录时如果请求是'POST'?
@app.route('/login', methods=['GET', 'POST'])
def login():
error = None
if request.method == 'POST':
if request.form['username'] != app.config['USERNAME']:
error = 'Invalid username'
elif request.form['password'] != app.config['PASSWORD']:
error = 'Invalid password'
else:
session['logged_in'] = True
flash('You were logged in')
return redirect(url_for('show_entries'))
# Note that nowhere do we seem to care about 'GET'...
return render_template('login.html', error=error)
Run Code Online (Sandbox Code Playgroud) 可能重复:
您何时使用POST以及何时使用GET?
我知道GET和POST方法之间的基本区别.也就是说,我们可以在GET的情况下看到URL参数,并且在POST的情况下无法看到URL参数.当然,我们可以通过POST传递大量数据,这是通过GET无法实现的.
这两种方法之间是否还有其他差异?
显然,你应该.但除了这样做以实现HTTP协议之外,还有什么理由这样做吗?开销减少了?某种安全的东西?
我还没有正式开始学习PHP,只是浏览几个教程,我有一个问题.为什么有人会选择使用Get vs Post?为什么你想要url栏中显示的数据?我知道post用于密码和重要信息,但我不明白为什么你会使用get而不是只是一直发布?
Thanks for any insight.
对于我的工作,我正在浏览一些javascript文件,并发现一些使用POST的AJAX调用,但没有发送任何数据.它似乎已经习惯了,但后端已更新,并且不需要数据,之前的开发人员将它们留作POST(或者他们只是复制并粘贴$.ajax来自其他文件的调用,并删除了数据值).
我将这些空的POST请求更改为GET请求.我假设使用GET而不是空POST更有效.我看了,没找到任何有用的东西.
那么,在没有数据发送的情况下使用GET而不是POST会更有效吗?
我在数据库中有很多书.搜索数据库不返回任何内容(空查询集).
在菜单中:
<form name="myform" method="POST" action="{% url 'search' %}">
{% csrf_token %}
<input type="text" name="search" placeholder="Search" />
</form>
Run Code Online (Sandbox Code Playgroud)
views.py,
def search(request):
if request.method == 'POST':
book_name = request.POST.getlist('search')
try:
status = Add_prod.objects.filter(bookname__icontains=book_name)
#Add_prod class contains a column called 'bookname'
except Add_prod.DoesNotExist:
status = None
return render(request,"search.html",{"books":status})
else:
return render(request,"search.html",{})
Run Code Online (Sandbox Code Playgroud)
我的模板文件,
{% if books %}
<a href="{% url 'buy_book' pk=books.pk %}">
<!--Upon successful search book image with hyperlink appears -->
<img src="{{books.image.url}}" alt="No Image"></a>
<p>{{books.bookname}}</p>
<p>Rs.{{books.price}}</p>
{% endif %}
Run Code Online (Sandbox Code Playgroud) 请让我知道何时使用 GET 方法以及何时在 REST API 中使用 POST。由于 Post 应该更安全,因此我们可以在 REST API 中从数据库中获取数据时使用它,或者仅在向数据库中添加新记录的情况下使用它。感谢您的意见。
我的评分系统允许匿名用户添加评分,但Google的抓取工具正在对评分进行评级.
如何确保Googlebot不会关注该链接?
什么时候使用GET方法是合理的?可以一直使用POST吗?GET是否快速转移到POST后是正确的吗?
我有一个包含用户名和密码的登录表单.它可以工作,但在我在网页浏览器上看到的请求之类的内容有"... login?user = myUser&password = myPassword".
鉴于表单有一个密码字段,可以在输入密码时隐藏密码,在地址栏上看到密码会不会很有趣.
有可能避免这种情况吗?
用户验证在服务器上使用自定义Java Web服务器完成.
我知道Restful Get操作用于检索信息.Restful Post用于创建/插入我们没有唯一标识符的资源.
但有人刚问我"Restful GET优于Restful POST有什么优势?服务器端功能方面的优势是什么?"
我试图将JSON传递给AngularJS中的PHP脚本,如下所示:
var testObj = {
answers : {
aa : 2,
ab : 3
}
};
var userAnswers = angular.toJson(testObj.answers);
$http.post("ajax/testAddObject.php?answers=" + userAnswers).
success(function(data){
console.log("Result: ", data);
});
Run Code Online (Sandbox Code Playgroud)
在PHP方面,我做了以下事情:
//... new PDO connection to DB
$answers = $_POST['answers'];
//some more stuff
Run Code Online (Sandbox Code Playgroud)
该$answers变量总是空的.但随后几乎随机,我看到了这个问题,答案说:
$_POSTContent-Type: application/json在标题中传递时将为空
而且,虽然我的代码是不是完全一样从问题的人,我改变了$_POST[...]对$_GET[...]上的PHP代码和它的工作!问题是,为什么?彼此之间有什么区别?因为,从我看来,似乎没有太大的区别......