Es ist die einfachste Sache zu fragen, aber @app.route('/')
funktioniert nicht auf meinem Linux-Server.Flask routing funktioniert nicht
Unten ist der Code:
from flask import Flask, jsonify, request
from app import models
import json
import time
app = Flask(__name__)
app.url_map.strict_slashes = True
@app.route('/')
def blank():
return 'Hello ABC!'
@app.route('/driftking')
def blank2():
return 'Hello driftking!'
# dynamic route
@app.route("/test/<search_query>")
def search(search_query):
return search_query
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
return "POST METHOD"
elif request.method == 'GET':
return "GET REQUEST ARE NOT ALLOWED"
if __name__ == '__main__':
app.run(debug=True)
app.run()
Sehr einfache App, die alle funktionieren auf dem lokalen Rechner in Ordnung, aber nicht auf meinem Linux-Server.
z. wenn ich http://xxx.xxx.xxx.xxx/projectname laden ---- zeigt es Hallo ABC!
Wenn ich http://xxx.xxx.xxx.xxx/projectname/driftking laden - es leitet mich auf http://xxx.xxx.xxx.xxx (dh Homepage meines Servers)
Wenn ich http://xxx.xxx.xxx.xxx/projectname/test/search laden - 404 Fehler nicht
gefundenWenn ich http://xxx.xxx.xxx.xxx/projectname/login laden - es leitet mich auf http://xxx.xxx.xxx.xxx (dh meinen Servers der Homepage)
127.0.0.1 - - [24/Nov/2017 19:37:01] "POST //login HTTP/1.1" 405 -
^^ Das ist, was ich am Terminal bekommen. Ich verstehe nicht, warum ich jedes Mal zwei führende Schrägstriche bekomme.
Aber wenn http://xxx.xxx.xxx.xxx/projectname/insert-any-word/login, meine Post req wird ausgeführt. Zur gleichen Zeit auf der lokalen Maschine bekomme ich nicht zwei führende Schrägstriche //
auf den Pfad und damit die Anfrage wird verarbeitet.
Entfernen Sie den zweiten Aufruf 'app.run()'. –
@ArtsiomPraneuski, entfernt. Funktioniert immer noch nicht. '127.0.0.1 - - [24/Nov/2017 21:14:07]" POST // Login HTTP/1.1 "405-' – driftking9987
Verwenden Sie einen Reverse-Proxy auf dem Server? Es ist wahrscheinlich falsch konfiguriert. – jordanm