Introducción
Bienvenido a este blog: "Introducción a la programación en Python: creación de su primera aplicación web". Ya sea que sea un principiante o un desarrollador con alguna base de programación, creo que puede obtener conocimiento e inspiración de este artículo.
Python es un lenguaje de programación de alto nivel ampliamente utilizado conocido por su sintaxis concisa y funciones poderosas. Sus campos de aplicación son muy amplios, desde análisis de datos, aprendizaje automático, hasta programación de redes, desarrollo web, scripting de sistemas, Python tiene importantes aplicaciones. La sintaxis concisa y fácil de leer de Python lo convierte en una opción ideal para principiantes, mientras que las ricas bibliotecas y marcos de trabajo de Python también permiten a los desarrolladores profesionales desarrollar aplicaciones de manera rápida y eficiente.
En esta publicación, nos centraremos en cómo usar Python para el desarrollo web. Nuestro objetivo es crear una aplicación web simple pero completamente funcional. Comenzaremos cubriendo los conceptos básicos de Python y luego profundizaremos en cómo crear aplicaciones web utilizando el marco Flask de Python. También presentaremos cómo ampliar la funcionalidad de las aplicaciones web, incluidas las operaciones de la base de datos, el procesamiento de formularios, la autenticación de usuarios, etc., y finalmente aprenderemos cómo probar e implementar aplicaciones web.
Si eres un principiante de Python, no te preocupes. Explicaremos cada paso con el mayor detalle posible para asegurarnos de que pueda entenderlo y seguirlo. Si ya tiene algo de experiencia con Python, creo que también puede aprender nuevos conocimientos y habilidades a través de este artículo. Independientemente de tu experiencia, te recomiendo que lo pruebes tú mismo, porque haciendo es la mejor manera de aprender.
¡Entonces empecemos!
Tabla de contenido
1. Conceptos básicos de Python
1.1 Instalación de Python y configuración del entorno
2.1 Listas, diccionarios y conjuntos
Tres conceptos básicos del desarrollo web
3.1 Cómo funcionan las aplicaciones web
3.2 Conceptos básicos del protocolo HTTP
Cuatro usan Flask para crear una aplicación web
4.1 Introducción e instalación de Flask
4.3 Funciones de visualización y enrutamiento
4.4 Plantillas y archivos estáticos
Cinco usan Flask-SQLAlchemy para procesar la base de datos
5.1 Introducción e instalación de Flask-SQLAlchemy
5.2 Base de datos de configuración
5.5 Insertar, actualizar y eliminar datos
Six usa Flask-WTF para procesar el formulario
6.1 Introducción e instalación de Flask-WTF
6.3 Representación del formulario
Seven usa Flask-Login para manejar la autenticación de usuario
7.1 Introducción e instalación de Flask-Login
Eight Use Flask-Bootstrap para aumentar la estética de las aplicaciones web
8.1 Introducción e instalación de Flask-Bootstrap
Aplicación Flask de nueve implementaciones
9.1 Introducción e instalación de Gunicorn
9.2 Ejecutar una aplicación Flask con Gunicorn
9.3 Introducción e instalación de Nginx
1. Conceptos básicos de Python
Antes de comenzar a crear aplicaciones web, asegurémonos de tener Python instalado y el entorno adecuado configurado. A continuación, cubriremos la instalación y la sintaxis básica de Python.
1.1 Instalación de Python y configuración del entorno
El proceso de instalación de Python varía ligeramente según el sistema operativo. En general, puede descargar la última versión de Python desde el sitio web oficial de Python e instalarla. Al mismo tiempo, también puede usar una distribución de Python como Anaconda, que incluye un intérprete de Python y una serie de bibliotecas y herramientas de uso común.
Después de instalar Python, puede python --version
comprobar si Python se ha instalado correctamente escribiendo la línea de comando. Si ve el número de versión de Python, significa que Python se instaló correctamente.
Para administrar las bibliotecas y dependencias de Python, recomendamos usar entornos virtuales. Puede usar las herramientas integradas de Python venv
o usar pipenv
herramientas de terceros como Python para crear y administrar entornos virtuales.
1.2 Sintaxis básica de Python
La sintaxis de Python es muy concisa y fácil de leer. A continuación, presentaremos brevemente las variables, los tipos de datos y las estructuras de control de Python.
-
Variables : en Python, no necesita declarar el tipo de una variable. Solo necesita usar el signo igual
=
para asignar un valor, y Python inferirá automáticamente el tipo de la variable. Por ejemplo,x = 10
,y = "Hello, world!"
. -
Tipos de datos : Python tiene una variedad de tipos de datos integrados, incluidos números enteros (
int
), números de coma flotante (float
), cadenas (str
), listas ( )list
, tuplas (tuple
), diccionarios (dict
) y colecciones (set
). -
Estructuras de control : Python admite estructuras de control comunes, incluidas
if
declaraciones condicionales, bucles y manejofor
de errores .while
try/except
Aquí hay algunos ejemplos simples:
# 变量和数据类型
x = 10
y = 3.14
z = "Hello, world!"
print(x, y, z)
# if条件语句
if x > 0:
print("x is positive")
# for循环
for i in range(5):
print(i)
# try/except错误处理
try:
print(10 / 0)
except ZeroDivisionError:
print("Cannot divide by zero")
Lo anterior es el conocimiento básico de Python. A continuación, profundizaremos en Python y comenzaremos a crear nuestra aplicación web.
Dos Python avanzados
Antes de comenzar a crear aplicaciones web, echemos un vistazo más profundo a las funciones avanzadas de Python, incluidas listas, diccionarios, conjuntos, funciones, clases, módulos y paquetes.
2.1 Listas, diccionarios y conjuntos
Python tiene varias estructuras de datos integradas, incluidas listas ( list
), diccionarios ( dict
) y conjuntos ( set
). Son muy poderosos y lo ayudan a organizar y procesar datos de manera eficiente.
-
Lista : una lista es una colección ordenada de elementos que pueden contener elementos de cualquier tipo, incluidas otras listas. Puede acceder a los elementos de la lista por índice y puede modificar la lista con métodos como
append
,insert
, etc.remove
-
Diccionario : Un diccionario es una colección de pares clave-valor, donde las claves deben ser de tipos inmutables, como enteros, cadenas o tuplas, y los valores pueden ser de cualquier tipo. Puede usar
[key]
para acceder a los valores en el diccionario, o usarget
el método para obtener un valor predeterminado. -
Conjunto : Un conjunto es una colección desordenada de elementos que no contienen duplicados. Puede usar métodos
add
yremove
para agregar o eliminar elementos, y también puede usar operaciones de conjunto como unión, intersección, diferencia, etc.
2.2 Funciones y clases
Las funciones y las clases son conceptos importantes en Python, y son la forma principal de lograr la reutilización y encapsulación del código.
-
Función : una función es una pieza de código reutilizable y con nombre. Puede
def
definir una función usando palabras clave y luego llamar a la función usando el nombre de la función y los paréntesis. -
Clases : Las clases son una forma de definir nuevos tipos. Defina
class
una clase usando palabras clave y luego use el nombre de la clase y los paréntesis para crear una instancia de la clase. Una clase puede contener propiedades y métodos, donde las propiedades son el estado de la clase y los métodos son el comportamiento de la clase.
2.3 Módulos y paquetes
Los módulos y paquetes son la forma en que Python organiza su código. Un módulo es un archivo que contiene código Python y un paquete es un directorio que contiene módulos y otros paquetes.
-
Módulos : puede usar
import
palabras clave para importar un módulo y luego usar el nombre del módulo y el punto para acceder a funciones y clases en el módulo. -
Paquetes : Los paquetes son una forma de organizar módulos. Un paquete es un
__init__.py
directorio que contiene archivos y puede importar módulos dentro del paquete usando el nombre del paquete seguido de un punto.
Estas son las características avanzadas de Python. A continuación, comenzaremos a aprender cómo crear aplicaciones web utilizando el marco Flask de Python.
Tres conceptos básicos del desarrollo web
Antes de comenzar a crear aplicaciones web, comprendamos cómo funcionan las aplicaciones web y los conceptos básicos del protocolo HTTP.
3.1 Cómo funcionan las aplicaciones web
Una aplicación web es una aplicación cliente-servidor. En este modelo, el usuario envía una solicitud al servidor a través del navegador (cliente), el servidor procesa la solicitud y devuelve una respuesta al cliente, y el cliente muestra la respuesta al usuario.
Una aplicación web generalmente incluye las siguientes partes:
-
Cliente : El cliente suele ser un navegador, como Chrome o Firefox. El cliente es responsable de enviar solicitudes HTTP y recibir respuestas HTTP, y luego mostrar el contenido de la respuesta al usuario.
-
Servidor : Un servidor es una computadora que aloja una aplicación web. El servidor es responsable de recibir solicitudes HTTP, procesar las solicitudes y generar respuestas HTTP, y enviar las respuestas a los clientes.
-
Base de datos : La base de datos se utiliza para almacenar los datos de la aplicación web. El servidor puede consultar la base de datos para obtener o actualizar datos y luego incluir los datos en la respuesta HTTP.
3.2 Conceptos básicos del protocolo HTTP
HTTP es la abreviatura de HyperText Transfer Protocol, que es el principal protocolo utilizado por las aplicaciones web. El protocolo HTTP define el formato y las reglas para la comunicación entre clientes y servidores.
Una solicitud HTTP consta de las siguientes partes:
-
Línea de solicitud : la línea de solicitud incluye el método de solicitud (como GET, POST), URI de solicitud y versión HTTP.
-
Encabezado de la solicitud : el encabezado de la solicitud incluye algunos metadatos que describen la solicitud, como Host, User-Agent, Aceptar, Cookie, etc.
-
Cuerpo de la solicitud : el cuerpo de la solicitud contiene el contenido de la solicitud, como datos de formulario, archivos, etc. No todas las solicitudes tienen un cuerpo de solicitud.
Una respuesta HTTP consta de las siguientes partes:
-
Línea de estado : la línea de estado incluye la versión HTTP, el código de estado y el texto de estado.
-
Encabezado de respuesta : el encabezado de respuesta incluye algunos metadatos que describen la respuesta, como Tipo de contenido, Longitud del contenido, Conjunto de cookies, etc.
-
Cuerpo de la respuesta : el cuerpo de la respuesta contiene el contenido de la respuesta, como HTML, JSON, imágenes, etc.
Lo anterior es el conocimiento básico del desarrollo web. A continuación, comenzaremos a aprender cómo crear aplicaciones web utilizando el marco Flask de Python.
Cuatro usan Flask para crear una aplicación web
Flask es un marco web ligero de Python que es simple y fácil de usar, pero también potente y flexible. A continuación, veremos cómo crear una aplicación web simple con Flask.
4.1 Introducción e instalación de Flask
La filosofía de diseño de Flask es "micro-core": solo contiene las funciones web más básicas, como enrutamiento y procesamiento de respuesta a solicitudes, y otras funciones como operaciones de base de datos, procesamiento de formularios, autenticación de usuarios, etc. se implementan a través de extensiones. Esto hace que Flask sea muy flexible, puedes elegir y combinar diferentes extensiones según tus necesidades.
Puedes usar pip para instalar Flask:
pip install flask
4.2 Aplicación Hola Mundo
Crear una aplicación Flask es muy simple. Primero, debe importar la clase Flask y luego crear una instancia de la aplicación Flask. Luego, puede usar decoradores para definir rutas y ver funciones. Finalmente, puede usar run
el método para iniciar la aplicación Flask.
Aquí hay un ejemplo de la aplicación "Hello, World!":
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello():
return "Hello, World!"
if __name__ == '__main__':
app.run()
En este ejemplo, definimos una ruta /
. Cuando un usuario visita esta URL, Flask llamará hello
a una función y devolverá el valor como el contenido de la respuesta HTTP.
4.3 Funciones de visualización y enrutamiento
En Flask, una ruta es un mapeo de patrones de URL para ver funciones. Puede @app.route
definir rutas utilizando decoradores.
Las funciones de visualización son funciones que procesan solicitudes HTTP y generan respuestas HTTP. La función de visualización puede devolver una cadena, que Flask convertirá en una respuesta HTTP y establecerá el encabezado de tipo de contenido adecuado.
Puede definir múltiples rutas y ver funciones, y cada ruta puede corresponder a uno o más métodos HTTP (como GET, POST).
4.4 Plantillas y archivos estáticos
Aunque las funciones de visualización pueden devolver cadenas directamente, en las aplicaciones web reales, normalmente necesitamos devolver páginas HTML más complejas. Para generar HTML de manera más conveniente, Flask admite el uso de plantillas Jinja2.
Una plantilla es un archivo HTML que contiene una sintaxis especial. Puede utilizar variables, bucles, condiciones y otras declaraciones en la plantilla. Puede usar render_template
funciones para representar plantillas y generar HTML.
Los archivos estáticos son archivos que no necesitan generarse dinámicamente en aplicaciones web, como CSS, JavaScript, imágenes, etc. Puede colocar los archivos estáticos en el static
directorio de la aplicación y luego usar url_for
la función para generar la URL de los archivos estáticos.
Los anteriores son los pasos básicos para crear una aplicación web usando Flask. A continuación, aprenderemos cómo ampliar la funcionalidad de las aplicaciones web, incluidas las operaciones de bases de datos, el procesamiento de formularios, la autenticación de usuarios y más.
Cinco usan Flask-SQLAlchemy para procesar la base de datos
En las aplicaciones web, generalmente necesitamos almacenar y manipular datos, como información del usuario, información del producto, etc. Estos datos suelen almacenarse en bases de datos. Flask-SQLAlchemy es una extensión de Flask que brinda soporte avanzado de SQLAlchemy, lo que nos permite operar bases de datos más fácilmente en aplicaciones de Flask.
5.1 Introducción e instalación de Flask-SQLAlchemy
Flask-SQLAlchemy es una extensión que proporciona compatibilidad con SQLAlchemy para Flask. SQLAlchemy es un marco ORM de Python que abstrae las operaciones de SQL de bajo nivel en operaciones de objetos y clases de Python de alto nivel, lo que nos permite operar la base de datos de una manera Pythonic.
Puede instalar Flask-SQLAlchemy usando pip:
pip install flask_sqlalchemy
5.2 Base de datos de configuración
Antes de crear una instancia de Flask-SQLAlchemy, debe establecer la URL de la base de datos en la configuración de la aplicación Flask. El formato de la URL de la base de datos es el siguiente:
dialect+driver://username:password@host:port/database
Por ejemplo, si usa una base de datos PostgreSQL y la base de datos se ejecuta localmente en el puerto 5432, el nombre de usuario y la contraseña son ambos postgres
y el nombre de la base de datos es myapp
, entonces la URL de la base de datos es:
postgresql://postgres:postgres@localhost:5432/myapp
5.3 Definición del modelo
En Flask-SQLAlchemy, las tablas de la base de datos están definidas por clases de Python, que se denominan clases modelo. La clase modelo hereda de db.Model
y cada atributo corresponde a una columna de una tabla.
Aquí hay un ejemplo de una clase modelo:
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, nullable=False)
email = db.Column(db.String(120), unique=True, nullable=False)
5.4 Consulta de datos
Puede usar la API de consulta de SQLAlchemy para consultar datos. La API de consulta proporciona una forma Pythonic de escribir consultas SQL.
Estos son algunos ejemplos de API de consulta:
# 查询所有用户
users = User.query.all()
# 查询第一个用户
user = User.query.first()
# 根据ID查询用户
user = User.query.get(1)
# 根据用户名查询用户
user = User.query.filter_by(username='john').first()
5.5 Insertar, actualizar y eliminar datos
Puede crear instancias de clases de modelos para insertar datos, modificar propiedades de instancias para actualizar datos y llamar a db.session.delete
métodos para eliminar datos. Todos los cambios deben db.session.commit
confirmarse en la base de datos llamando a un método.
Estos son algunos ejemplos de inserción, actualización y eliminación de datos:
# 插入数据
user = User(username='john', email='[email protected]')
db.session.add(user)
db.session.commit()
# 更新数据
user.username = 'johnny'
db.session.commit()
# 删除数据
db.session.delete(user)
db.session.commit()
Los anteriores son los pasos básicos para usar Flask-SQLAlchemy para procesar la base de datos. A continuación, aprenderemos a manejar formularios con Flask-WTForms.
Six usa Flask-WTF para procesar el formulario
En las aplicaciones web, a menudo necesitamos procesar formularios, como formularios de inicio de sesión, formularios de registro, formularios de búsqueda, etc. Flask-WTF es una extensión que brinda compatibilidad con WTForms para Flask, lo que nos permite procesar formularios más fácilmente en las aplicaciones de Flask.
6.1 Introducción e instalación de Flask-WTF
Flask-WTF es una extensión que proporciona compatibilidad con WTForms para Flask. WTForms es una biblioteca de formularios de Python que nos ayuda a generar y validar formularios.
Puede instalar Flask-WTF usando pip:
pip install flask_wtf
6.2 Definir el formulario
En Flask-WTF, los formularios están definidos por clases de Python, que se denominan clases de formulario. La clase de formulario se hereda de flask_wtf.FlaskForm
y cada propiedad corresponde a un campo de formulario.
El siguiente es un ejemplo de una clase de formulario:
from flask_wtf import FlaskForm
from wtforms import StringField, PasswordField, SubmitField
from wtforms.validators import DataRequired, Email, Length
class LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
submit = SubmitField('Log In')
6.3 Representación del formulario
Puede usar las macros proporcionadas por WTForms en plantillas para representar formularios. Esto puede ayudarlo a generar HTML rápidamente para formularios.
Aquí hay una plantilla de ejemplo:
{% from "_formhelpers.html" import render_field %}
<form method="POST">
{
{ form.hidden_tag() }}
{
{ render_field(form.username) }}
{
{ render_field(form.password) }}
{
{ render_field(form.submit) }}
</form>
6.4 Trabajar con formularios
En las funciones de vista, puede usar form.validate_on_submit()
métodos para verificar si el formulario se envió y validó. Este método devuelve True si se envía el formulario y se validan todos los campos; de lo contrario, devuelve False.
El siguiente es un ejemplo de una función de visualización:
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
# TODO: 登录用户
return redirect(url_for('index'))
return render_template('login.html', form=form)
Los anteriores son los pasos básicos para usar Flask-WTF para procesar formularios. A continuación, aprenderemos cómo manejar la autenticación de usuarios con Flask-Login.
Seven usa Flask-Login para manejar la autenticación de usuario
La autenticación de usuario es una función importante en las aplicaciones web, que permite a los usuarios iniciar sesión en la aplicación y mantenerlos conectados. Flask-Login es una extensión que brinda soporte de autenticación de usuario para Flask, lo que nos permite manejar más fácilmente la autenticación de usuario en las aplicaciones de Flask.
7.1 Introducción e instalación de Flask-Login
Flask-Login proporciona una forma amigable de administrar las sesiones de los usuarios, lo que puede ayudarnos a implementar funciones como el inicio de sesión, el cierre de sesión y recordarme.
Puede usar pip para instalar Flask-Login:
pip install flask_login
7.2 Modelo de usuario
Antes de usar Flask-Login, debe implementar algunos métodos en su modelo de usuario, incluidos is_authenticated
, y .is_active
is_anonymous
get_id
El siguiente es un ejemplo de un modelo de usuario:
from flask_login import UserMixin
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), unique=True, nullable=False)
password_hash = db.Column(db.String(128))
def set_password(self, password):
self.password_hash = generate_password_hash(password)
def check_password(self, password):
return check_password_hash(self.password_hash, password)
7.3 Iniciar y cerrar sesión
Puede utilizar login_user
una función para iniciar la sesión de un usuario y logout_user
una función para cerrar la sesión de un usuario.
Estos son ejemplos de funciones de vista de inicio y cierre de sesión:
from flask_login import login_user, logout_user
@app.route('/login', methods=['GET', 'POST'])
def login():
form = LoginForm()
if form.validate_on_submit():
user = User.query.filter_by(username=form.username.data).first()
if user is None or not user.check_password(form.password.data):
flash('Invalid username or password')
return redirect(url_for('login'))
login_user(user, remember=form.remember_me.data)
return redirect(url_for('index'))
return render_template('login.html', form=form)
@app.route('/logout')
def logout():
logout_user()
return redirect(url_for('index'))
7.4 Vista protegida
Puede usar login_required
decoradores para proteger las vistas de modo que solo los usuarios registrados puedan acceder a ellas.
El siguiente es un ejemplo de una función de vista protegida:
from flask_login import login_required
@app.route('/edit_profile')
@login_required
def edit_profile():
# ...
Los anteriores son los pasos básicos para manejar la autenticación de usuario con Flask-Login. A continuación, aprenderemos a usar Flask-Bootstrap para mejorar la estética de las aplicaciones web.
Eight Use Flask-Bootstrap para aumentar la estética de las aplicaciones web
Bootstrap es un marco front-end popular, que incluye una variedad de estilos CSS prediseñados y complementos de JavaScript, que pueden ayudarnos a construir rápidamente hermosas interfaces web. Flask-Bootstrap es una extensión que proporciona compatibilidad con Bootstrap para Flask.Incrusta todos los archivos estáticos de Bootstrap en la aplicación Flask.
8.1 Introducción e instalación de Flask-Bootstrap
Flask-Bootstrap le permite usar Bootstrap fácilmente en su aplicación Flask. No solo proporciona todos los archivos estáticos de Bootstrap, sino que también proporciona algunas macros de plantilla de Jinja2, que pueden ayudarlo a generar HTML de Bootstrap rápidamente.
Puede instalar Flask-Bootstrap usando pip:
pip install flask_bootstrap
8.2 Usando Bootstrap
Después de instalar Flask-Bootstrap, puede usar bootstrap.load_css()
y en sus plantillas bootstrap.load_js()
para cargar el CSS y JavaScript de Bootstrap. También puede usar bootstrap.quick_form()
macros para generar rápidamente formularios de estilo Bootstrap.
Aquí hay una plantilla de ejemplo usando Bootstrap:
{% extends "bootstrap/base.html" %}
{% block title %}My App{% endblock %}
{% block navbar %}
<div class="navbar navbar-inverse" role="navigation">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="{
{ url_for('index') }}">My App</a>
</div>
</div>
</div>
{% endblock %}
{% block content %}
<div class="container">
<h1>Welcome to My App!</h1>
<form method="POST">
{
{ bootstrap.quick_form(form) }}
</form>
</div>
{% endblock %}
8.3 Arranque personalizado
Aunque Bootstrap proporciona estilos preestablecidos, es posible que deba personalizar algunos estilos para satisfacer sus necesidades. Puede crear su propio archivo CSS y luego cargar este archivo CSS en la plantilla.
Puede usar url_for
funciones para generar URL para archivos estáticos. Por ejemplo, si su archivo CSS está ubicado static/css
en un directorio, puede generar la URL del archivo CSS de esta manera:
<link rel="stylesheet" href="{
{ url_for('static', filename='css/my.css') }}">
Los anteriores son los pasos básicos para aumentar la estética de las aplicaciones web usando Flask-Bootstrap. A continuación, aprenderemos a implementar una aplicación Flask.
Aplicación Flask de nueve implementaciones
Hasta ahora, hemos completado el desarrollo de la aplicación web y el siguiente paso es implementarla en el servidor para que más usuarios puedan acceder a ella. En esta sección, presentaremos brevemente cómo usar Gunicorn y Nginx para implementar aplicaciones Flask.
9.1 Introducción e instalación de Gunicorn
Gunicorn es un servidor HTTP WSGI de Python, que tiene excelentes capacidades de concurrencia y es muy adecuado para alojar aplicaciones web de Python.
Puedes instalar Gunicorn usando pip:
pip install gunicorn
9.2 Ejecutar una aplicación Flask con Gunicorn
Puede utilizar la interfaz de línea de comandos de Gunicorn para ejecutar su aplicación Flask. Debe proporcionar la ruta de importación y el número de puerto de la aplicación.
Aquí hay un ejemplo de cómo ejecutar una aplicación Flask:
gunicorn -w 4 -b 127.0.0.1:5000 myapp:app
En este ejemplo, -w 4
significa usar 4 procesos de trabajo, -b 127.0.0.1:5000
significa escuchar el puerto local 5000, que myapp:app
es la ruta de importación de la aplicación.
9.3 Introducción e instalación de Nginx
Nginx es un servidor proxy inverso y HTTP de alto rendimiento, que puede actuar como equilibrador de carga y caché HTTP. Aquí, usamos Nginx como un servidor proxy inverso para reenviar las solicitudes de los usuarios a Gunicorn.
Puede usar su administrador de paquetes para instalar Nginx, por ejemplo, en Ubuntu puede usar apt para instalar Nginx:
sudo apt update
sudo apt install nginx
9.4 Configurar Nginx
Debe crear un archivo de configuración de Nginx para decirle a Nginx cómo reenviar solicitudes. El siguiente es un archivo de configuración de ejemplo:
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://127.0.0.1:5000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
En este archivo de configuración, listen 80;
significa escuchar en el puerto 80, significa server_name example.com;
que el nombre del servidor es y significa reenviar la solicitud al puerto local 5000.example.com
proxy_pass http://127.0.0.1:5000;
Los anteriores son los pasos básicos para implementar la aplicación Flask usando Gunicorn y Nginx. En el entorno de producción real, es posible que también deba configurar HTTPS, usar el administrador de procesos para administrar el proceso de Gunicorn, etc.
Hasta ahora, hemos completado todo el proceso desde el desarrollo hasta la implementación.