Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask应用程序未从浏览器URL发出POST请求_Python_Python 3.x_Flask_Http Post_Flash Message - Fatal编程技术网

Python Flask应用程序未从浏览器URL发出POST请求

Python Flask应用程序未从浏览器URL发出POST请求,python,python-3.x,flask,http-post,flash-message,Python,Python 3.x,Flask,Http Post,Flash Message,我在Python3中使用POST方法编写了一个烧瓶应用程序。每当我点击URL时,在命令提示符下,我看到GET方法被调用。 以下是应用程序: from flask import Flask, jsonify, make_response, request app = Flask(__name__) @app.route('/api/v1.0/qanda/', methods=['POST']) def people_api(): if request.method == 'POST

我在Python3中使用POST方法编写了一个烧瓶应用程序。每当我点击URL时,在命令提示符下,我看到
GET
方法被调用。
以下是应用程序:

from flask import Flask, jsonify, make_response, request    
app = Flask(__name__)
@app.route('/api/v1.0/qanda/', methods=['POST'])
def people_api():
    if request.method == 'POST':
        text = request.data.get('text', '')

        if text is None:
           make_response(jsonify({'error': 'Missing text parameter'}), 400)
    return text
app.run()
每当我点击url时:

http://127.0.0.1:5000/api/v1.0/qanda/?text=ggg
我在命令行中看到:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
127.0.0.1 - - [18/Jul/2017 09:33:15] "GET /api/v1.0/qanda/?text=ggg HTTP/1.1" 200 -
127.0.0.1 - - [18/Jul/2017 09:33:22] "GET /api/v1.0/qanda/?text=ggg HTTP/1.1" 200 -

但是我只想在点击URL时使用post方法。我不知道为什么GET方法会起作用。请告诉我如何在通过浏览器点击URL时使用
POST
方法而不是
GET
方法。

您不能通过地址栏进行POST请求。您必须使用JavaScript或提交一个带有class='post'方法的表单

举几个例子:

表格:


您不能从浏览器地址栏对url进行post调用。你可以使用这个工具。使用此工具进行请求非常容易,支持所有请求方法和授权头

或者,您可以使用python的模块发出请求

Import requests

r = requests.post('http://httpbin.org/post/', data = {'key':'value'})

用于创建post请求的Chrome插件(以及许多其他插件,如Postman)很不错。html格式的表单作为
也可以工作,当通过浏览器点击URL时,它将始终通过浏览器向服务器发送GET请求。你不可能通过这种方式发送POST请求!但那不是地址栏。这是一个插件。除非我误解了它在做什么。@CoryMadden是的,你在写。我不是在寻找应用程序,而是寻找一个地址解决方案,因为barA html post请求甚至没有在url中放置参数
$.post({'your': 'data'})
Import requests

r = requests.post('http://httpbin.org/post/', data = {'key':'value'})