Pregunta
Creé una ruta dinámica como /update/<randomString> en mi archivo Flask app.py, donde randomString es una cadena generada aleatoriamente con una longitud de 50 . Sin embargo, si busco /update/1 puedo ver la misma ruta dinámica /update/<randomString> sin ningún error. ¿Alguien puede explicar por qué es así?
Mira lo que he probado hasta ahora:
@app.route('/') def index(): randomString = ''.join(secrets.choice(string.ascii_uppercase+string.digits+string.ascii_lowercase) for k in range (50)) session['randomString'] = str(randomString) return render_template('index.html') @app.route('/update/<randomString>') def update(randomString): if 'randomString' in session: randomString = session['randomString'] return render_template('update.html') else: return 'error...'Enlace de la página dinámica en la página update.html, donde se pasa una cadena aleatoria con la ayuda de la sesión (definida en la página index.html).
<a href="update/{{randomString}}">Dynamic page</a> Editar: también puedo ver la ruta dinámica cuando hago clic en el enlace definido anteriormente y mi sección de URL muestra esa larga cadena aleatoria. El problema es: puedo acceder a la misma ruta cuando busco http://127.0.0.1:5000/update/1
Captura de pantalla uno

Captura de pantalla dos

Mientras almacena la cadena aleatoria, la clave que usa es randomString . Entonces estás almacenando la cadena aleatoria en un dictado como
session['randomString'] = '1234567890' Luego, cuando accede a la sesión en la ruta /update , solo está verificando si la sesión tiene una clave llamada randomString. También debe verificar si la session['randomString'] == '1234567890' y mostrar la página solo si la cadena aleatoria en la sesión es la misma que creó en la ruta / . Puede reemplazar el si con
if 'randomString' in session and session['randomString'] == randomString :