Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

273
Vistas
Frasco: elimina los caracteres de final de línea de la URL

Necesito eliminar los caracteres de final de línea de las solicitudes entrantes en el matraz. Si la ruta es https://localhost/test\r\n , necesito eliminar \r\n . Esto se debe a un problema de otro programa, que siempre los estaba enviando. Entonces, ¿hay alguna manera de hacer esto más ordenado?

 @app.route("/test") @app.route("/test\r\n") def test(): return "TEST"

Gracias por adelantado

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Podría implementar un middleware WSGI simple que corrija la URL antes de que Flask las procese. Eso podría verse algo como:

 from flask import Flask class FixURLMiddleware: def __init__(self, app): self.app = app def __call__(self, environ, start_response): environ["PATH_INFO"] = environ["PATH_INFO"].strip() return self.app(environ, start_response) app = Flask(__name__) app.wsgi_app = FixURLMiddleware(app.wsgi_app) @app.route("/hello") def hello(): return "Hello, world" if __name__ == "__main__": app.run()

Para cualquier solicitud entrante, esto llamará al método strip() (que elimina los espacios en blanco, incluidas las líneas nuevas y los retornos de carro, desde el principio y el final de las cadenas) en la ruta antes de que Flask maneje la solicitud.

over 4 years ago · Santiago Trujillo Denunciar

0

Puede usar middleware para resolver el problema, ya que puede envolver su aplicación y modificar la entrada y salida antes de la aplicación.

Aquí hay un ejemplo de trabajo de tal:

 from flask import Flask app = Flask(__name__) class PathNormaliser: """ Simple WSGI middleware """ def __init__(self, app): self._app = app def __call__(self, environ, start_response): environ['PATH_INFO'] = environ['PATH_INFO'].replace("\\r", "").replace("\\n", "") environ['REQUEST_URI'] = environ['REQUEST_URI'].replace("\\r", "").replace("\\n", "") environ['RAW_URI'] = environ['RAW_URI'].replace("\\r", "").replace("\\n", "") return self._app(environ, start_response) app.wsgi_app = PathNormaliser(app.wsgi_app) @app.route("/") def hello_world(): return "<p>Hello, World!</p>" app.run()

Puede leer más sobre esto en un hilo similar a su caso aquí: modifique la URL del matraz antes de enrutar

O bien, puede leer sobre el middleware WSGI aquí: https://flask.palletsprojects.com/en/2.0.x/api/?highlight=middleware#flask.Flask.wsgi_app

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda