Introducción a la programación en Python: creación de su primera aplicación web

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

Introducción

1. Conceptos básicos de Python

1.1 Instalación de Python y configuración del entorno

1.2 Sintaxis básica de Python

Dos Python avanzados

2.1 Listas, diccionarios y conjuntos

2.2 Funciones y clases

2.3 Módulos y paquetes

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.2 Aplicación Hola Mundo

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.3 Definición del modelo

5.4 Consulta de datos

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.2 Definir el formulario

6.3 Representación del formulario

6.4 Trabajar con formularios

Seven usa Flask-Login para manejar la autenticación de usuario

7.1 Introducción e instalación de Flask-Login

7.2 Modelo de usuario

7.3 Iniciar y cerrar sesión

7.4 Vista protegida

Eight Use Flask-Bootstrap para aumentar la estética de las aplicaciones web

8.1 Introducción e instalación de Flask-Bootstrap

8.2 Usando Bootstrap

8.3 Arranque personalizado

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

9.4 Configurar 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 --versioncomprobar 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 venvo usar pipenvherramientas 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 ifdeclaraciones condicionales, bucles y manejo forde errores .whiletry/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 usar getel 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 addy removepara 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 defdefinir 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 classuna 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 importpalabras 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__.pydirectorio 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:

  1. 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.

  2. 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.

  3. 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:

  1. 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.

  2. Encabezado de la solicitud : el encabezado de la solicitud incluye algunos metadatos que describen la solicitud, como Host, User-Agent, Aceptar, Cookie, etc.

  3. 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:

  1. Línea de estado : la línea de estado incluye la versión HTTP, el código de estado y el texto de estado.

  2. 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.

  3. 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 runel 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á helloa 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.routedefinir 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_templatefunciones 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 staticdirectorio de la aplicación y luego usar url_forla 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 postgresy 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.Modely 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.deletemétodos para eliminar datos. Todos los cambios deben db.session.commitconfirmarse 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.FlaskFormy 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_activeis_anonymousget_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_useruna función para iniciar la sesión de un usuario y logout_useruna 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_requireddecoradores 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_forfunciones para generar URL para archivos estáticos. Por ejemplo, si su archivo CSS está ubicado static/cssen 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 4significa usar 4 procesos de trabajo, -b 127.0.0.1:5000significa escuchar el puerto local 5000, que myapp:appes 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.comproxy_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.

Supongo que te gusta

Origin blog.csdn.net/a871923942/article/details/130577692
Recomendado
Clasificación