When I type
/login as url,it will go wrong
from flask import Flask ,url_for,render_template,request app = Flask(__name__) @app.route('/login') def index(): return "index" if __name__== "__main__": app.run()
The error turn out to be like this:
Not Found. The requested URL was not found on the server.
When I replace
/login/ or any other words like
/log , it will be all right. How does that happen?
Please read the flask quickstart Unique URLs / Redirection Behavior, URL canonicalization and Trailing slash in URLs - which style is preferred?
You could turn off the strict url mode in the route module, to get the
/login/ request working
Add the following code after you
app = Flask(__name__) and before you define any routing.
app.url_map.strict_slashes = False
My chrome is messing the request somehow. I open the
<F12> developer tools and find that it automatically redirect my
/login request to
General Request URL:http://roxma.org:8000/hello Request Method:GET Status Code:301 MOVED PERMANENTLY (from disk cache) Remote Address:127.0.0.1:1080 Request Content-Length:263 Content-Type:text/html; charset=utf-8 Date:Wed, 28 Dec 2016 14:24:44 GMT Location:http://roxma.org:8000/hello/ Server:Werkzeug/0.11.11 Python/3.5.1
This is awkward. I don't know how to fix this issue. I guess the best solution is to use
/login/ style instead.