2017-07-18 4 views
0

J'ai écrit une application Flask en utilisant la méthode POST dans Python3. Chaque fois que je clique sur l'URL, à l'invite de commande, je vois que la méthode GET est appelée.
Voici l'application:L'application Flask ne donne pas de requête POST au navigateur URL

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() 

Chaque fois que je frappe l'url:

http://127.0.0.1:5000/api/v1.0/qanda/?text=ggg 

Je vois sur la ligne de commande:

* 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 - 

Mais je veux utiliser uniquement le poste méthode tout en appuyant sur l'URL. Je ne sais pas pourquoi la méthode GET vient int jouer. Veuillez me faire savoir comment je peux utiliser la méthode POST au lieu de la méthode GET tout en appuyant sur l'URL via le navigateur.

+0

plug-in Chrome pour créer la demande après (et bien d'autres, comme Postman) sont agréables. Un formulaire en html comme '

' fonctionne également – Luke

+0

Tout en tapant URL via le navigateur, il sera toujours envoyer une requête GET à votre serveur par le navigateur. Pas moyen d'envoyer une requête POST par cette approche! – Zico

Répondre

0

Vous ne pouvez pas effectuer une demande POST via la barre d'adresse. Vous devrez utiliser JavaScript ou soumettre un formulaire avec la méthode = 'post'.

A Exemples de couple:

Forme:

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

JavaScript (avec jQuery):

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

https://chrome.google.com/webstore/detail/postman/fhbjgbiflinjbdggehcddcbncdddomop?hl=fr – Luke

+0

Mais ce n'est pas la barre d'adresse. C'est un plugin. À moins que je ne comprenne mal ce qu'il fait. –

+0

@CoryMadden Oui, vous écrivez. Je ne cherche pas d'application, mais pour une solution pour la barre d'adresse –

0

Vous ne pouvez pas faire un appel de poste à une URL de la barre d'adresse du navigateur. Vous pouvez utiliser l'outil postman. Il est très facile de faire des demandes avec cet outil, prend en charge toutes les méthodes de demande et les en-têtes d'autorisation.

Ou tout simplement vous pouvez utiliser le module de python requests pour faire une demande

Import requests 

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