es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

FLASK No es posible cambiar el CSS mediante el archivo JS

Intentando cambiar el fondo con mi URL de entrada utilizando jinja2/flask junto con python/javascript.

La alerta funciona. Sin embargo, el color de fondo no funciona. Funciona en un archivo que solo tiene html/js/py.

HTML:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">
    <script type="text/javascript" src="{{ url_for('static', filename='script.js') }}"></script>
    <title>♟️Checkerboard</title>
</head>
<body>
    <div class="container">
        {{output}}
    </div>
</body>
</html>

Python

from flask import Flask, render_template, request, redirect
app = Flask(name)

@app.route('/')
def hello(): 
    output = "hello world"
    return render_template('index.html', output=output)

if name=="main":
    app.run(debug=True)

JAVASCRIPT

alert("Testing");
document.body.style.backgroundColor = "red";

Básicamente, todos los enlaces de archivos han demostrado funcionar.
document.body.style.backgroundColor = “red”; ha demostrado funcionar.
document.body.style.backgroundColor = “red”; no funciona en jinja/flask.

Por favor ayuda.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está en el uso de JavaScript para cambiar el color de fondo en el entorno jinja2/flask. Una solución podría ser pasar la variable de entrada de URL como un parámetro a la función render_template en Python, y luego usar esta variable en el HTML para establecer el color de fondo en línea con el atributo de estilo. De esta manera, el color de fondo puede ser determinado por la entrada del usuario antes incluso de enviar el HTML al lado del cliente.

    Código de ejemplo en Python:

    @app.route('/')
    def hello(): 
        url_input = request.args.get('url-input') # obtener la entrada de URL de la solicitud
        output = "hola mundo"
        return render_template('index.html', output=output, url_input=url_input)
    

    Código de ejemplo en HTML:

    <body style="background-color: {{ url_input }};">
      <div class="container">
        {{ output }}
      </div>
    </body>
    

    En este ejemplo, la entrada del usuario se pasa como un parámetro de URL a través del objeto request, y luego se pasa como un parámetro a la función render_template. Luego, en el HTML, el color de fondo se establece en línea con el atributo de estilo utilizando la variable url_input.

Comments are closed.