¿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; Hola mundo & lt/h1 >
#La función El nombre no debe escribirse como índice, solo el nombre de la función escrito cuando está asociado con el decorador.
#Registre la función de índice como el controlador de la ruta raíz del programa. Se llama al valor de retorno de la función. la respuesta, que es recibida 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# Para mapear la parte de la URL variable, simplemente use la sintaxis del decorador específico
@app.route('/user/<name>')def usuario(nombre):return " <h 1. & gt; Hola % 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(__nombre__)
@ aplicación . ruta('/')def index():return '<h 1>HolaMundo</h 1>'@app.route ('/ usuario/<nombre>')def usuario(nombre):return "<h 1>Hola% s</h1 >%nameif __name__ == "__main__ ":
app.run(debug=true)
De forma predeterminada, se abrirá el puerto 5000 de la máquina 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 otorga al servidor web.
Ejemplo:
abortar importación desde flask
@ ruta('/usuario/<id>') def get_user(id):
usuario = load_user(id) si no es usuario:
Abortar (404) devuelve '<h 1>Hola, % s</h 1>'% (Nombre de usuario)
10. extensión flask flask-script
Este ejemplo trata principalmente sobre cómo agregar la extensión flask en el programa y usarla
Por ejemplo, en el siguiente ejemplo, agrega un flask -script y use 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 un archivo y pasar parámetros al método de ejecución
.Instale la extensión
pip install flask-script
Utilice la extensión flask-script y cambie el archivo hello.py al formato de parámetro de línea de comando inicio # de forma predeterminada. , las extensiones agregadas se instalarán en el espacio de nombres flask.ext
from flask import flask from flask.ext.script import manager
app = Flask(__name__. )
Manager=Manager(Aplicación)
@ app . route('/')def index():return '<h 1>HelloWorld</ h 1>"@app.route('/usuario /<nombre>')def usuario(nombre):return "<h 1>Hola% s</h1>%nameif __name__ == "__main__ ":
manager.run()
Se agrega una clase de administrador a la extensión flask-script pasando la instancia del programa como parámetro. Se pasa al constructor para inicializar la instancia de la clase principal, inicializando así la extensión. Otras extensiones de flask posteriores son básicamente la misma rutina.
Después de la modificación, se puede utilizar un conjunto de opciones básicas de línea de comando para iniciar y depurar
Python hello.py shell#Ejecute el shell de Python en el contexto de la aplicación flask. facilite las pruebas y la depuración del entorno web
Python hello.py runserver#Ejecute el servidor de desarrollo 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.