Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

263
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!