Flask应用程序没有从浏览器URL

时间:2017-07-18 04:06:16

标签: python python-3.x flask http-post flash-message

我在Python3中使用POST方法编写了一个Flask应用程序。每当我点击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()

每当我点击网址时:

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方法正在进行中。请注意,在通过浏览器访问网址时,请告诉我如何使用POST方法代替GET方法。

2 个答案:

答案 0 :(得分:0)

您无法通过地址栏执行POST请求。您必须使用JavaScript或使用方法提交表单=' post'。

几个例子:

形式:

<form method='post' action='your url'>
  <input name='name' type='text'>
  <input type='submit'>
</form>

JavaScript(使用jQuery):

$.post({'your': 'data'})

答案 1 :(得分:0)

您无法通过浏览器地址栏对网址进行调查。您可以使用postman工具。使用此工具发出请求非常容易,支持所有请求方法和授权标头。

或者只是您可以使用python的requests模块发出请求

Import requests

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