2017-05-10 3 views
0

ich meine Anforderung zu diesem einfachen Code vereinfachenPython Flask, schließen Sie eine andere URL

from flask import Flask, request 
import requests 

app = Flask(__name__) 

@app.route('/', methods=['POST']) 
def root(): 
    payload = {'Message': 'yo','Port':'123'} 
    r = requests.post("http://127.0.0.1:5000/test", data=payload) 
    return r.text 


@app.route('/test', methods=['POST']) 
def test(): 
    return request.form['Message']+','+request.form['Port'] 

if __name__ == '__main__': 
    app.run(debug=True) 

ich die URL '127.0.0.1:5000/test' getestet haben von Googles Postman.
Ich sende die Daten an die URL, und es hat funktioniert, kann das gewünschte Ergebnis zurückgeben.

Und ich erstellte ein weiteres .py, um die URL auch zu testen. Es kann auch das gewünschte Ergebnis zeigen.

import requests 

payload = {'Message':'yo','Port':'123'} 
r = requests.post("http://127.0.0.1:5000/test", data=payload) 
print r.text 

Dann legte ich den gleichen Code unter

@app.route('/', methods=['POST']) 
def root(): 

Ich möchte die URL verwenden '127.0.0.1:5000/' Daten an die '127.0.0.1:5000/test' zu senden (Ich benutze auch Googles Postman) Und es kann nicht funktioniert ... es zeigt immer 'loading ...'

Gibt es einen besseren Weg, um meine Anforderung zu implementieren?
Ich werde Ihnen danken, so so sehr ~ !!

+0

Add 'Gewinde = true' zu' app.run() '. – stamaimer

Antwort

-1

Anstatt eine lokale POST Anfrage zu senden, die viel länger dauern würde, lassen Sie sie beide beide zur gleichen Funktion routen und Standardeinstellungen festlegen.

@app.route('/', methods=['GET']) 
@app.route('/test', methods=['POST']) 
def test(): 
    return request.form.get('Message', 'yo') + ',' + request.form.get('Port', '123') 

die in der Regel für alle POST-Anfragen auf /test und mit einem GET auf / reagieren würde, es funktioniert genauso wie POSTen {'Message': 'yo', 'Port': '123'}-/test

Verwandte Themen