el matraz no puede acceder / iniciar sesión

Un problema

Extraviado

La URL solicitada no se encontró en el servidor. Si ingresó la URL manualmente, verifique la ortografía y vuelva a intentarlo.

Al aprender el matraz, debe definir la página de inicio de sesión. La función de enrutamiento se define naturalmente de la siguiente manera:

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

Después de escribir la función de enrutamiento, visité la página y descubrí que era:

El código fuente es el siguiente:

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

Dos ideas de solución

Intente resolver el problema en Baidu, desafortunadamente, la capacidad de búsqueda es limitada y no puedo encontrarla. Intente pensar si esta función de ruta y vista no está agregada al url_map, y luego intente imprimir el resultado:

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

Los resultados son los siguientes:

No hay problema, lo ha hecho, pero no se puede acceder a él. Cuando quieras rendirte, gg

El resultado es realmente encontrado. Cambie "/ login" en @ app.route ("/ login", métodos = ['GET', 'POST']) a "/ login /" o "/ 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?

Tres más pensando, ¿por qué?

 

¿Por qué '/ index' está bien, pero no se puede acceder a '/ login'?

 

La explicación en el documento del matraz es:

La URL canónica tiene una barra. Es similar a una carpeta o directorio en un sistema de archivos. Si la URL que visita no tiene una barra, Flask lo redireccionará a la URL canónica con una barra (la razón por la que no se puede acceder a / login).

Acerca del enrutamiento de URL sin barras. Es similar al nombre de la ruta de un archivo. El uso de una barra para acceder a la URL generará un error 404 "no encontrado". Esto ayuda a mantener únicas las URL de estos recursos, lo que ayuda a los motores de búsqueda a evitar indexar la misma página dos veces.

Sin embargo, no creo que la explicación sea suficiente, entonces, ¿por qué se puede acceder a / index o / hello? como sigue:

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

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

Lea las opiniones de diferentes personas:

 

Siento que la explicación es inverosímil, pero aun así no respondí a la segunda pregunta.

 

Comprende por ti mismo

'/ login' es el enrutamiento integrado,

Necesita ser diferente al escribir por su cuenta,

Entonces podemos usar '/ login2', '/ login3', '/ login4', '/ login / para acceder correctamente

 

Comprenda las reglas y conéctese a la ruta especial '/ login' es una ruta incorporada. Cuando se encuentre con situaciones similares en el futuro, únase lentamente a este grupo especial.

 

Los colegas que tengan ideas pueden discutir a continuación (la sustancia principal es lo que sucedió, no lo entendí, solo puede resolver el problema)

 

Supongo que te gusta

Origin blog.csdn.net/qq_39463175/article/details/110731109
Recomendado
Clasificación