Ihrer /users
Route fehlt ein abschließender Schrägstrich, den Werkzeug als explizite Regel interpretiert, um nicht mit einem abschließenden Schrägstrich übereinzustimmen. Fügen Sie entweder den abschließenden Schrägstrich hinzu, und Werkzeug leitet um, wenn die URL ihn nicht enthält, oder setzen Sie strict_slashes=False
die Route, und Werkzeug entspricht der Regel mit oder ohne Schrägstrich.
@app.route('/users/')
@app.route('/users/<path:path>')
def users(path=None):
return str(path)
c = app.test_client()
print(c.get('/users'))
print(c.get('/users/'))
print(c.get('/users/test'))
@app.route('/users', strict_slashes=False)
@app.route('/users/<path:path>')
def users(path=None):
return str(path)
c = app.test_client()
print(c.get('/users'))
print(c.get('/users/'))
print(c.get('/users/test'))
Sie können auch strict_slashes
für alle URLs festlegen .
app.url_map.strict_slashes = False
In den meisten Fällen sollten Sie jedoch vermeiden, strenge Schrägstriche zu deaktivieren. Die Dokumente erklären, warum:
Durch dieses Verhalten können relative URLs auch dann weiterarbeiten, wenn der abschließende Schrägstrich weggelassen wird. Dies entspricht der Funktionsweise von Apache und anderen Servern. Außerdem bleiben die URLs eindeutig, wodurch Suchmaschinen vermeiden, dieselbe Seite zweimal zu indizieren.
Dies liegt an der Konsistenz von Werkzeug mit anderen HTTP-Servern. Schauen Sie sich die Quickstart-Dokumentation von Flask an . Der relevante Absatz:
Fügen Sie also einfach
/users/
auch das Routing hinzu.quelle