フラスコは/ loginにアクセスできません

問題

見つかりません

要求されたURLがサーバーで見つかりませんでした。URLを手動で入力した場合は、スペルを確認して再試行してください。

フラスコを学習するときは、ログインページを定義する必要があります。ルーティング機能は当然次のように定義されます。

@app.route("/login", methods=['GET', 'POST']) 

ルーティング関数を書いた後、私はそのページにアクセスし、それが次のようになっていることを発見しました。

ソースコードは次のとおりです。

@app.route("/login", methods=['GET', 'POST'])
def login():
    return render_template('login.html', title='Sign In')

2つのソリューションのアイデア

Baiduの問題を解決してみてください。残念ながら、検索機能が制限されていて見つかりません。このルートとビューの機能がurl_mapに追加されていないかどうかを検討してから、出力を出力してみてください。

if __name__ == '__main__':
    # 通过url_map可以查看整个flask中的路由信息
    print(app.url_map)
    # 启动flask程序
    app.run(debug=True)

結果は次のとおりです。

問題ありませんが、アクセスできません。あきらめたいときは、gg

結果は実際に見つかりました。 @ app.route( "/ login"、methods = ['GET'、 'POST'])の "/ login"を "/ login /"または "/ loginxxx"に変更してください。

When I type /login as url,it will go wrong

For example:

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 with /login/ or any other words like /log , it will be all right. How does that happen?

さらに3つの考え、なぜですか?

 

「/ index」はOKなのに「/ login」にアクセスできないのはなぜですか?

 

フラスコ文書の説明は次のとおりです。

正規URLにはスラッシュがあります。これは、ファイルシステムのフォルダまたはディレクトリに似ています。アクセスするURLにスラッシュがない場合、Flaskはスラッシュ付きの正規URLにリダイレクトします(/ loginにアクセスできない理由)。

スラッシュなしのURLのルーティングについて。これは、ファイルのパス名に似ています。スラッシュを使用してURLにアクセスすると、404「見つかりません」エラーが生成されます。これにより、これらのリソースのURLを一意に保つことができ、検索エンジンが同じページに2回インデックスを付けることを回避できます。

しかし、説明だけでは不十分だと思いますが、なぜ/ indexや/ helloにアクセスできるのでしょうか。次のように:

@app.route('/index')
def index():
    return 'Index Page'

@app.route('/hello')
def hello():
    return 'Hello, World'

さまざまな人々の意見を読んでください:

 

説明はとてつもない感じがしますが、それでも2番目の質問には答えられませんでした。

 

自分で理解する

'/ login'は組み込みのルーティングであり、

自分で書くときは違う必要があります、

したがって、「/ login2」、「/ login3」、「/ login4」、「/ login /」を使用して正常にアクセスできます。

 

ルールを把握し、特別な「/ login」に接続するのは組み込みのルートです。将来同様の状況が発生した場合は、この特別なプールにゆっくりと参加してください。

 

アイデアを持っている同僚は、以下で議論することを歓迎します(主な内容は何が起こったのか、私はそれを理解していませんでした、それは問題を解決することしかできません)

 

おすすめ

転載: blog.csdn.net/qq_39463175/article/details/110731109