¿Cómo organiza Python Flask los programas?
Todos los programas de matraz deben crear una instancia de programa.
El servidor web utiliza el protocolo de interfaz wsgi para reenviar todas las solicitudes del cliente receptor a la instancia del programa para su procesamiento. Esta instancia de programa es un objeto matraz.
from flask import flask
app = Flask(__name__)
#__name__ determina el directorio raíz del programa para que los archivos de recursos se puedan encontrar más tarde en relación con la raíz del programa La ubicación del directorio.
2. Funciones de enrutamiento y visualización
La instancia del programa necesita saber qué código debe ejecutar la solicitud de URL después de recibir la solicitud. Esto guarda la relación de mapeo entre la URL y la función de Python; esta relación de mapeo se llama enrutamiento.
Escribir la ruta del proceso en el programa flask:
2.1#Utilice el decorador app.route para registrar la función decorada como una ruta. Por ejemplo
@ app . route('/')def index(): return "lt; h 1 gt; Hello World lt/h1 >>p>
#El nombre de la función no debe escribirse Índice es solo el nombre de la función escrita cuando se asocia con el decorador
#Registre la función de índice como el controlador de la ruta raíz del programa. El valor de retorno de la función se llama respuesta. es el contenido recibido por el cliente.
Una función como index se llama función try. La respuesta devuelta por la función try puede ser una cadena simple que contenga HTML o puede ser algo complejo. p>
2.2#Parte de la URL variable Para mapear, simplemente use la sintaxis del decorador específico
@ app . lt;h 1 gt;hello s lt. /h1 >(nombre)
Al llamar a la función try, flask pasará automáticamente la parte dinámica como parámetro. En esta función, los parámetros se utilizan para generar un mensaje de bienvenida personal.
#Nota: La parte dinámica del enrutamiento usa el tipo de cadena de forma predeterminada y se puede definir usando int, float, path, por ejemplo
3.
Llame a la instancia del programa. El método de ejecución de la aplicación inicia el servidor web desarrollado por la integración de flask.
if __name__ == "__main__ ":
app.run(debug=True)
Debug=True representa el modo de depuración. El servidor iniciado con el método de ejecución de flask no es adecuado para producción y aquí solo se usa para pruebas.
4. Un programa flask completo
No digas nada, hablemos primero del ejemplo hello.py
Importar flask from flask
aplicación = Flask(__name__)
@ aplicación . ruta('/')def index(): return ' lt;h 1 gt;HelloWorld lt/h 1>;"@ aplicación . ruta ('/ usuario/ lt; nombre gt') def usuario(nombre): return " lt; h 1 gt; Hola s lt/h1 >nombreif __nombre__ == "__main__ ":
app.run( debug= true)
De forma predeterminada, se abrirá el puerto 5000 de la máquina del servidor; 127.0.0.1:5000
Ejecute el script pythonhello.py.
Pruebas del navegador')
También hay un tipo de respuesta especial, flask proporciona una respuesta de error. Esto lo proporciona la función de aborto. La cancelación genera una excepción 404. Una vez lanzada la excepción, el control se transfiere al servidor web.
Ejemplo:
abortar importación desde matraz
@app.route('/user/lt;idgt')def get_user(id):
p>
usuario = load_user(id) si no es un usuario:
Abortar (404) devuelve 'lth 1 gt;Hola, s lt/h 1>;" (nombre de usuario )
10.extensión flask flask-script
Este ejemplo trata principalmente sobre cómo agregar extensiones flask en su programa y usarlas
Por ejemplo, en el En el siguiente ejemplo, agrega Crear una extensión flask-script y usar parámetros de línea de comando para mejorar la funcionalidad del programa.
Utilice la línea de comando para iniciar el servidor web en lugar de modificar archivos y pasar parámetros a la ejecución. método.
Instale la extensión
pip install flask-script
Utilice la extensión flask-script y cambie el archivo hello.py al formato del comando. parámetro de línea de inicio #, que se agrega de forma predeterminada. La extensión se instalará en el espacio de nombres flask.ext
desde flask import flask desde flask.ext.script import manager
app =. Flask(__name__)
manager=manager(aplicación)
@app.route('/') def index(): return 'lt;h 1 gt;HelloWorld lt/h 1>"@app.route( '/usuario/ lt;nombre gt') def usuario(nombre): return " lt; h 1 gt; Hola s lt/h1 >nombreif __nombre__ == "__main__ ":
manager.run()
Se agrega una clase de administrador a la extensión flask-script. En el ejemplo anterior, se inicializa una instancia de la clase principal pasando la instancia del programa como parámetro. constructor, inicializando así las otras extensiones posteriores. La extensión flask es básicamente la misma rutina
Después de la modificación, puede usar un conjunto básico de opciones de línea de comando para iniciar y depurar el programa. p>Python hello.py shell#. Ejecute el shell de Python en el contexto de la aplicación flask para facilitar las pruebas y la depuración del entorno web.
Python hello.py runserver#Ejecute el servidor de desarrollo de flask app.run(). .
Python hello.py -h#Mostrar información de ayuda.
python hello.py runserver -Ayuda
Uso: hola py runserver[-h][-t HOST][-p PORT][-threaded]
[ -proceso proceso] [ -error de paso] [-d]
[-r]
python hola .pyrunserver -h 0 0 . #Esto abre el puerto 80 de esta máquina y otras máquinas pueden acceder a él de forma remota.