簡體   English   中英

我不能去我正在使用燒瓶的其他路徑

[英]I can't go to the other paths i am using flask

我正在學習這門關於燒瓶的課程 這是基本的燒瓶代碼。 當我在第一條路線上時,我很好,但是當我嘗試放置斜線並轉到另一個頁面時,它不起作用。

我收到這條消息:

“在服務器上找不到請求的 URL。如果您手動輸入了 URL,請檢查您的拼寫並重試。”

保存后我確實運行了FLASK_APP=app.py flask run

from Flask import flask

app= Flask(__name__)

@app.route('/')

def index():
    return "index"
@app.route('/me')

def me():
    return "me"

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

在課堂上效果很好。 當我這樣做時,它不會

127.0.0.1 - - [08/Jul/2019 02:43:55] "GET /me/ HTTP/1.1" 404 -

我猜最后 404 是問題

回復后

from Flask import flask

app= Flask(__name__)
strict_slashes=False

@app.route('/')

def index():
    return "index"
@app.route('/me/')

def me():
    return "me"

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

您已經明確聲明了您的“/me”路線,而沒有尾隨斜線。 但是,在調用 URL 時,您會在末尾使用斜杠“/me/”來調用它。 Werkzeug(Flask 開發應用服務器)默認有“strict_slashes=True”的規則,它要求你在調用你的 URL 時遵循精確的路由聲明。 換句話說,如果在你的代碼中,你聲明了“@app.route('/me'),你應該調用“127.0.0.1/me”,而不是“127.0.0.1/me/”。

最后刪除斜杠(例如http://localhost/me )將解決您的問題。 如果要刪除默認規則,還可以更改 Werkzeug 設置並設置 strict_slashes=False。

我會說創建一個 app.errorhandler(404) 然后定義在你收到錯誤后要做什么來檢查它是否是 404 錯誤,以及其他錯誤。 我還要說使用 html 並制作可用於進入不同頁面的鏈接,這比手動輸入更容易。 這是我的代碼:

Python:

from flask import Flask, render_template
app = Flask(__name__)
app.route('/')
def home():
  return render_template('home.html')
app.route('/me')
def me():
  return 'me'
app.errorhandler(404)
  def error(arg):
        return 'wrong url'
if __name__ == "__main__":
   app.run(host="0.0.0.0", port=8080)

html:

<!-- you can use css to make the link look better or <style> </style>-->
<a href="/me"></a>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM