[pyar] Python me vuelve loco

Matías Bellone matiasbellone en gmail.com
Lun Ago 5 18:40:38 ART 2013


2013/8/5 diego <dieguicho en gmail.com>:
> cambie todos los nombres y sigue pasando lo mismo.
> Angel probé lo que me sugeriste y tampoco
>
> routes.py
> from flask import Flask, render_template, request
>
> app = Flask(__name__)
>
> @app.route('/hola/<nombre>')
> def hola(nombre=None):
> return render_template('hola.html', nombre=nombre)
>
> if __name__ == '__main__':
>     app.run(debug=True)
>
>
> hola.html
> {% extends "layout.html" %}
> {% block content %}
>   <div class="jumbo">
>     <h2>Welcome to the Flask app<h2>
>     <h3>This is the home page for the Flask app<h3>
>   </div>
> {% endblock %}
>
> layout.html
> <!DOCTYPE html>
> <html>
>   <head>
>     <title>Flask App</title>
>     <link rel="stylesheet" href="{{ url_for('static',
> filename='css/main.css') }}">
>   </head>
>   <body>
>
>     <header>
>      <div class="container">
>         <h1 class="logo">Flask App</h1>
>           <nav>
>             <ul class="menu">
>               <li><a href="{{ url_for('hola') }}">hola</a></li>
>             </ul>
>           </nav>
>       </div>
>     </header>
>
>     <div class="container">
>       {% block content %}
>       {% endblock %}
>     </div>
>
>   </body>
> </html>
>

El problema es que registrás la URL con un parámetro (nombre) y tu
llamada a la función "url_for('hola')" no incluye dicho parámetro.
Para poder hacer que el parámetro sea opcional tenés que registrar la
ruta correspondiente agregando «@app.route('/hola/')» antes de la que
ya tenés para que la función quede registrada en ambas rutas con y sin
parámetro.

Saludos,
Toote


More information about the pyar mailing list