Flask: Primera aplicación
En el capítulo anterior instalamos Flask con éxito. A continuación, podemos crear una aplicación Flask sencilla.
Primero, crea un archivo llamado app.py y añade el siguiente contenido:
Ejemplo (app.py)
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Ejecuta la aplicación Flask en la línea de comandos:
python app.py
Verás que el servidor de desarrollo de Flask se inicia y muestra algo similar a lo siguiente:
... * Running on http://127.0.0.1:5000 Press CTRL+C to quit * Restarting with stat * Debugger is active! * Debugger PIN: 977-918-914 ...
Abre el navegador y visita http://127.0.0.1:5000/. Deberías ver el mensaje "Hello, World!", lo que indica que Flask se ha instalado y ejecutado correctamente.

Nunca nombres el archivo comoflask.py, esto entrará en conflicto con la propia biblioteca Flask y provocará errores de importación.
Análisis del código:
-
from flask import Flask: Esta línea de código importa la clase
flaskdesde el móduloFlask.FlaskLa clase es el núcleo del framework Flask y se utiliza para crear instancias de aplicaciones Flask. -
app = Flask(__name__): Esta línea de código crea una instancia de la aplicación Flask.
__name__es una variable especial de Python que, cuando el módulo se ejecuta directamente, es'__main__', y cuando es importado por otros módulos, es el nombre del módulo. Pasar__name__ParaFlaskal constructor permite que la aplicación Flask encuentre y cargue los archivos de configuración. -
@app.route('/'): Este es un decorador que le indica a Flask qué URL debe activar la siguiente función. En este ejemplo, especifica la URL raíz (es decir, la página principal del sitio web).
-
def hello_world():: Esto define una función llamada
hello_world, que se invocará cuando el usuario acceda a la URL raíz. -
return 'Hello, World!': Esta línea de código es el valor de retorno
hello_worldde la función. Cuando el usuario accede a la URL raíz, esta cadena se enviará de vuelta al navegador del usuario. -
if __name__ == '__main__':: Esta línea es una condición que verifica si este módulo se está ejecutando directamente en lugar de ser importado por otros módulos. Si se ejecuta directamente, se ejecutará el siguiente bloque de código.
-
app.run(debug=True): Esta línea de código llama al método
runde la instancia de la aplicación Flask, que inicia el servidor de desarrollo integrado de Flask.debug=TrueEl parámetro activa el modo de depuración, lo que significa que la aplicación se recargará automáticamente cuando el código cambie y proporcionará un depurador cuando ocurra un error.
Si has instaladopython-dotenv, puedes crear en el directorio del proyecto el archivo.flaskenv, para simplificar el comando:
# 文件路径:.flaskenv FLASK_APP=app FLASK_DEBUG=True

Después de la configuración, ejecuta directamenteflask runy no será necesario especificar cada vez--appel parámetro:
(.venv) $ flask run * Serving Flask app 'app' * Debug mode: on * Running on http://127.0.0.1:5000 (Press CTRL+C to quit)
Si nombras el archivo comoapp.pyowsgi.py, Flask podrá detectarlo automáticamente, e incluso--appse puede omitir. Pero especificarlo explícitamente es un buen hábito.
Modo Debug
Durante el desarrollo se recomienda activar el modo Debug, que ofrece dos funciones importantes:
- Recarga automática: Después de guardar los cambios en el código, el servidor se reinicia automáticamente, sin necesidad de intervención manual.
- Depurador interactivo: Cuando el código falla, el navegador mostrará información detallada del error y la pila de llamadas.
Cómo activarlo:
(.venv) $ flask --app app run --debug * Debug mode: on * Restarting with stat * Debugger is active! * Debugger PIN: 123-456-789
Advertencia de seguridad: El depurador interactivo en modo Debug permite ejecutar código Python arbitrario en el navegador. Aunque está protegido por un código PIN,nunca actives el modo Debug en un entorno de producción.。
Comparación de métodos de ejecución
Además del comandoflask run, también verás otra forma de ejecución:
Ejemplo
if __name__ == "__main__":
app.run(debug=True)
Luego usapython app.pypara ejecutarlo.
| Método de ejecución | Ventajas | Desventajas |
|---|---|---|
| flask run | Soporta parámetros de línea de comandos (--host, --port, --debug), configuración flexible; carga automática de .flaskenv | Requiere recordar los parámetros del comando |
| python app.py | Simple e intuitivo | Poco flexible; el modo de depuración requiere modificar el código; no recomendado oficialmente por Flask |
Flask recomienda oficialmente usar el comandoflask run. Si escribes en el códigoapp.run()y además usasflask run, Flask ignorará inteligentemente la llamadaapp.run()y mostrará una advertencia en amarillo.
Añadir más contenido a la respuesta
La función de vista no solo puede devolver cadenas simples, sino también contenido HTML:
Ejemplo
from flask import Flask
app = Flask(__name__)
@app.route("/")
def index():
# Devuelve HTML de varias líneas; Flask establece automáticamente Content-Type como text/html
return """
<h1>Bienvenido al tutorial de Flask de EJEMPLO</h1>
<p>Esta es una aplicación web construida con Flask.</p>
<ul>
<li>Aprender el sistema de rutas</li>
<li>Aprender la renderización de plantillas</li>
<li>Aprender operaciones de bases de datos</li>
</ul>
"""
Visita http://127.0.0.1:5000/, el resultado es el siguiente:

Por supuesto, escribir HTML directamente en el código Python pronto se vuelve difícil de mantener. En capítulos posteriores se explicará cómo usar plantillas para separar el HTML del código Python.
Otras extensiones