Tengo una pequeña aplicación donde la entrada está tomada del usuario y en base a ella se muestran los datos de vuelta en el html. Tengo que enviar los datos desde el matraz de pantalla en html, pero no puede encontrar una manera de hacerlo. No hay error que me he encontrado.

[ACTUALIZADO]:
Secuencia de comandos de Python :

    from flask import Flask, render_template, request
    import random

    app = Flask(__name__, template_folder='templates')

    @app.route('/', methods=['GET','POST'])
    def samplefunction():
        if request.method == 'GET':
            return render_template('new.html')
        if request.mthod == 'POST':
            greetIn = ['hey', 'hi', 'hey there', 'hi there', 'hello', 'hola', 'yoo']
            byeIn = ['bye', 'see you later', 'catch you later', 'toodles']
            nameOut = ['my name is Fatty!!', 'Fatty is my name', 'you can call me Fatty', 'I go by the name of Fatty']
            greetOut = ['hey there!', 'hi!', 'hi there!', 'hey!']
            byeOut = ['bye bye', 'bye. see you later']

            human1 = request.form['human']

            if human1 in greetIn:
                bot = random.choice(greetOut)
                return render_template('new.html', bot=bot)
            else:
                bot = 'Sorry..no idea!!!'
                return render_template('new.html', bot=bot)

  if __name__ == "__main__":
     app.run(debug=True)

Código HTML :

<html>
  <head>
    <title>BOT</title>
    <script>
        var bot = {{ bot }}
    </script>
  </head>
  <body>
      <h1>Hello, type something to begin!</h1>
      <form method='post'>
        Human: <input type='text' name='human'><br>
        Bot: {{ bot }}<br>
        <input type="submit" name="action">
      </form>
  </body>
</html>

Cualquier ayuda se agradece.

Gracias!

  • Que se ve bien para mí. ¿Cuál es la representación en el lugar de {{ bot }}?
  • bot = random.choice(greetout) es que lo que realmente se ve como en el código? Nunca se declara una variable con una minúscula o en out. Aunque tengo la esperanza de que iba a tirar un error…
  • Se debe trabajar una vez que usted cambie la variable a greetOut como se ha señalado anteriormente
  • Ohh..no lo vi.. Pero aún no funciona. la página se actualiza sin necesidad de escribir nada en lugar de {{bot}}
InformationsquelleAutor Anupama_K | 2017-07-21

2 Comentarios

  1. 2

    Problema

    Su función samplefunction() siempre hace new.html sin una variable incluida a causa de la instrucción return.

    def samplefunction():
        return render_template('new.html')

    Revisión

    Necesita agregar if request.method == 'GET': y if request.method == 'POST': y, a continuación, el código de trabajo. Y cambiar el nombre de la variable como la otra respuesta por @Harrison sugiere: bot = random.choice(greetOut) no bot = random.choice(greetout)

    Código Actualizado

    def samplefunction():
        if request.method == 'GET':
            return render_template('new.html')
        if request.method == 'POST':
            greetIn = ['hey', 'hi', 'hey there', 'hi there', 'hello', 'hola', 'yoo']
            byeIn = ['bye', 'see you later', 'catch you later', 'toodles']
            nameOut = ['my name is Fatty!!', 'Fatty is my name', 'you can call me Fatty', 'I go by the name of Fatty']
            greetOut = ['hey there!', 'hi!', 'hi there!', 'hey!']
            byeOut = ['bye bye', 'bye. see you later']
            human1 = request.form['human']
            if human1 in greetIn:
                bot = random.choice(greetOut)
                return render_template('new.html', bot=bot)
            else:
                render_template('new.html')
    
    if __name__ == "__main__":
        app.run(host='0.0.0.0', port=8080, debug=True)
    • Aún no funciona…simplemente la representación new.html sin la variable cada vez que se hace clic en el botón
    • Entonces no has copiado correctamente, porque el código no funciona, estoy obteniendo los resultados esperados. Está seguro de que usted ha copiado exactamente el código? Después de @app.route('/', methods=['GET','POST']) La definición de def samplefunction() tiene que ser exactamente como he escrito más arriba, y el código que hace lo que quiere. El bot respuesta está escrita en el código html de la página en el lugar de la variable {{ bot }} en la línea: Bot: {{ bot }}<br>.
    • Usted sabe que usted necesita para la entrada de texto en la human cuadro de texto y que la entrada debe coincidir con una de las cadenas de: greetIn lista, ¿verdad? Supuse que usted sabía que ya es su código. Usted puede introducir monkey brain y esperar para obtener un robot respuesta… También, La if __name__ == "__main__": declaración es dependiente de su entorno, y que debe ser configurado como usted desea. Supongo que usted sabe que ya tiene al menos ha sido capaz de representar el new.html página sin el bot respuesta…. Por favor, dame una actualización o publicar tus mensajes de error, y yo voy a ayudar a descubrirlo.
    • La siguiente es la estructura de mi carpeta: /bot --- /new1.py /templates -- new.html he copiado el código correctamente y se hizo un solo cambio en if __name__ == "__main__": app.run(debug=True) y, a continuación, en el cmd después de ir a la /bot en la carpeta no ejecute los siguientes comandos: set FLASK_APP=new1.py y flask run no estoy recibiendo ningún mensaje de error ni nada, la página se vuelve a cargar después de que haga clic con el botón sin la variable.
    • Se dijo, «la página se vuelve a cargar después de que haga clic con el botón sin la variable». Y arriba se dijo, «todavía no funciona…simplemente la representación new.html sin la variable cada vez que se hace clic en» … ¿de entrada de texto en la Humanos: cuadro de texto? Usted tendrá que introducir una cadena de texto a partir de esta variable: greetIn = ['hey', 'hi', 'hey there', 'hi there', 'hello', 'hola', 'yoo'] como hola o hola exactamente en el fin de recibir un bot respuesta. También puede ejecutar la aplicación con el comando $ python new1.py o $ python3 new1.py pero tanto su solución y esto señaló un trabajo fino.
    • Yo le estoy dando a la entrada en el cuadro de texto y, a continuación, hacer clic en el botón…y también han tratado de ejecutar mi aplicación con python new1.py o python3 new1.py pero todavía es sólo la visualización de la página, sin ninguna respuesta.
    • He hecho una demostración de su aplicación y si las funciones de multa. En la demo, puedo visualizar el contenido de los archivos en su aplicación, a continuación, ejecute la aplicación con python3, a continuación, visite el navegador para mostrar cómo probar tu aplicación en el navegador. (El puerto de #’s son diferentes, porque de cómo he configurado mi VM). ** el enlace del vídeo de aquí ** usted Puede visitar este link, ver la demo, y replicar mi demo? Si el video es de mala calidad, usted podrá necesitar la descarga, pero se debe ejecutar en google drive.
    • Si usted no puede reproducir la demo, por favor explique por qué. También, explicar los errores. Finalmente, usted debe actualizar su pregunta anterior con el nuevo código que usted está tratando de usar de modo que tu pregunta tiene un buen código, y podemos determinar lo que está mal con su entorno. De nuevo, copiar todo el código actualizado que está utilizando en su actualización de las preguntas anteriores.
    • El código es exactamente el mismo que el demo que hizo, pero hay algunos problemas en el medio ambiente, ya que sigue siendo sólo una de renderizar el html sin ningún cambio.. he seguido el matraz de documentación a su vez esta aplicación para una aplicación web.
    • Hey trabajado!!! He instalado el Matraz y el entorno virtual de nuevo y luego se trabajó como un encanto! Gracias 🙂 🙂
    • Hey @Anupama_K bonito trabajo!!

  2. 0

    greetOut = ['hey there!', 'hi!', 'hi there!', 'hey!'] <– saludo0ut

    bot = random.choice(greetout) <– saludoout

    Aparte de eso, sus plantillas se ve bien. Si usted corregir su capitalización se debe trabajar.


    Además, no obligatorias, sino que también podría condensar su Matraz de las importaciones en 1 línea como esta:
    from flask import Flask, render_template, request

    • Hizo esto, pero aún no funciona. La página se actualiza en el botón click y no aparece nada en lugar de {{bot}}

Dejar respuesta

Please enter your comment!
Please enter your name here