Una breve mirada al desarrollo web en Python

U

Introducción

Desde 2003, Python se ha clasificado entre los 10 principales lenguajes de programación para aprender y su clasificación ha mejorado constantemente desde entonces. De acuerdo a una estadística, Python es uno de los 5 principales lenguajes para aprender en 2019 y se ha convertido en una parte esencial de la comunidad de programación, gracias a su simplicidad, flexibilidad, robustez, facilidad de uso, compatibilidad, velocidad y versatilidad. Además, gigantes tecnológicos como Instagram, Spotify y Google basan, al menos en parte, su arquitectura en Python.

En resumen, Python se ha convertido en una figura central del mundo de la programación y los negocios con el surgimiento de Silicon Valley y Wall Street poster child: Fintech. los las razones son muchas, pero Python ofrece la seguridad y escalabilidad buscadas por la tendencia de enfoque digital primero asumida por una parte considerable de los sectores empresarial y financiero.

Aunque Python se puede usar para realizar una variedad de tareas que van desde el Machine Learning y la ciencia de datos hasta la robótica y la programación de hardware, en este artículo estudiaremos cómo se puede usar Python para el desarrollo web.

Desarrollo web con Python

Python ofrece algo para todos a través de sus muchos marcos. Un marco es un conjunto de paquetes y módulos que proporcionan una abstracción o funcionalidad genérica que se puede cambiar de forma selectiva para crear software específico de la aplicación.

Pero, ¿cómo saber qué marco web es el adecuado para usted? Para aplicaciones web completas, Django y Pirámide son el camino a seguir. Para un mejor control y visualización o creación de prototipos de una aplicación, Web2py o Matraz puede tener algo que ofrecer a su proyecto. CheeryPy es imprescindible para soluciones simples y minimalistas. Tornado manejará 10,000 o más conexiones concurrentes a su aplicación al mismo tiempo mientras Guión es la elección perfecta para aplicaciones analíticas.

En este artículo, proporcionaremos una breve descripción general de tres de las selecciones más populares de desarrolladores y empresas de programación por igual: Django, Pyramid y Flask. Después de la descripción general, mostraremos el marco más popular, Django, en acción mediante el uso de un sistema de inicio de sesión de ejemplo.

Django

Este marco es la encarnación de la frase “pilas incluidas”. Definido como “el framework web para perfeccionistas con plazos”. Sus características integradas permiten una amplia gama de aplicaciones web como aplicaciones de bases de datos, chatbots, soluciones GPS, etc.

Su filosofía DRY (Don’t Repeat Yourself) no solo permite, sino que también promueve, la reutilización del código, reduciendo el tiempo de codificación a la mitad. Además, su arquitectura modular / desacoplada permite una modificación perfecta de los componentes del código, lo que le permite agregar o eliminar componentes tanto como sea necesario con poco o ningún esfuerzo.

Django también posee algo llamado ORM (Object-Relational Mapping), que lo hace no solo altamente compatible con la mayoría de las bases de datos populares como SQL u Oracle, sino que le permite trabajar con varias bases de datos a la vez.

Finalmente, Django es SEO (Optimización de motores de búsqueda) amigable. Por ejemplo, permite la reducción del tiempo de carga de la página a través de técnicas / características como el almacenamiento en caché de plantillas y la compresión de JavaScript.

Pirámide

Este marco se define a sí mismo como “ni demasiado pequeño, ni demasiado grande, perfecto”. Pyramid es un marco centrado en el acabado con la capacidad de comenzar con poco, lo que le permite codificar una base sólida para su solución y luego escalarla según sea necesario. Es similar a Django en su compatibilidad con aplicaciones grandes y pequeñas, pero se distingue de Django en su complejidad.

Si bien por sí solo puede considerarse una opción ajustada en comparación con otros marcos, Pyramid brilla con su sistema de plugins, lo que permite a los desarrolladores agregar lo que sea necesario, lo que permite la implementación de múltiples soluciones para una tarea determinada.

Pyramid es incluso ideal para aplicaciones de un solo archivo, autenticación flexible y autorización o aplicaciones orientadas a ver predicados.

Matraz

Mientras que Pyramid y Django comparten la misma filosofía central, Flask va en la otra dirección. Si el objetivo final es algo simple, manejable y personalizable, le sugiero que siempre use Flask en lugar de usar un caballo de fuerza excesivo como Django. Matraz se basa en gran medida en Plantillas Jinja 2 y el Werkzeug Kit de herramientas WSGI (Web Server Gateway Interface).

Autodefinido como un microframework, Flask está diseñado para soluciones a pequeña escala, como aplicaciones simples o API, donde la funcionalidad esbelta es la máxima prioridad. Matraz es también el microframework más utilizado para crear prototipos. Al construir una aplicación funcional desde cero en un corto período de tiempo, tiene prioridad sobre la gestión de dicha aplicación a largo plazo.

Sistema de inicio de sesión simple con Django

En esta sección, explicaremos cómo crear un sistema de inicio de sesión simple con el marco de Django. Si bien muchas cosas suceden “fuera del escenario”, y muchas cosas se pueden personalizar al gusto de los desarrolladores, solo se explicarán los pasos más básicos para demostrar lo fácil que es desarrollar aplicaciones con el marco de Django.

Instalación de Django

Para este ejemplo, el PEPITA es necesario instalar el módulo. Una vez hecho esto, Se puede instalar Django y se puede crear un nuevo proyecto de la siguiente manera:

$ python3 -m venv ~/.virtualenvs/dProject # Creates a virtual enviroment named dProject
$ source ~/.virtualenvs/dProject/bin/activate # A path is created
(dProject) $ pip install django # Django is installed
(dProject) $ django-admin.py startproject LoginProject_D # The project is created with the name LoginProject_D 
(dProject) $ ./manage.py migrate # Migrate creates a new SQLite database
(dProject) $ ./manage.py runserver # Calls the local server
(dProject) $ ./manage.py startapp dProject # This creates a dedicated app that will allow the making of a view and url registration.

Una vez hecho esto, se puede obtener una vista previa del proyecto en un navegador mediante el “http://127.0.0.1:8000“dirección. La pantalla de bienvenida de Django se cargará en el navegador, lo que indica que la instalación fue un éxito.

Aplicación de autenticación de Django

Cuando se crea un proyecto, Django instala la aplicación “auth” de forma predeterminada. Esto se puede confirmar revisando el archivo “settings.py”, que se crea automáticamente con el nuevo proyecto, en la sección “INSTALLED_APPS” de la siguiente manera:

INSTALLED_APPS = [
    …
    'django.contrib.admin',
    'django.contrib.auth', # Here it is! Note that several built-in apps are included in this section.
   …
]

“Django-auth”, o “django.contrib.auth”, es el marco de Django sistema de autenticación incorporadoy contiene sus modelos predeterminados.

Para usar la aplicación “auth”, debemos agregarla al archivo de nivel de proyecto “urls.py”:

# Importing this module will allow us to set the routes login and logout views
from django.conf.urls import url
from django.contrib import admin
from django.contrib.auth import views as auth_views 

# This section adds Django site authentication urls (for login, logout, password management)
urlpatterns = [
    url(r'^login/$', auth_views.login, name="login"),
    url(r'^logout/$', auth_views.logout, name="logout"),
    url(r'^admin/', admin.site.urls),
    path('dProject/', include('django.contrib.auth.urls')),
]

La aplicación “auth” nos proporciona las siguientes URL, cada una asociada con las vistas “auth”, lo que nos permite usarlas simplemente creando sus plantillas de vista:

dProject/login/ [name="login"]
dProject/logout/ [name="logout"]
dProject/password_change/ [name="password_change"]
dProject/password_change/done/ [name="password_change_done"]
dProject/password_reset/ [name="password_reset"]
dProject/password_reset/done/ [name="password_reset_done"]
dProject/reset/<uidb64>/<token>/ [name="password_reset_confirm"]
dProject/reset/done/ [name="password_reset_complete"]

los django.contrib.auth.views.login view creará la plantilla “registration / login.html” de forma predeterminada. Esto crea una carpeta llamada REGISTRO con una plantilla “login.html” dentro. El siguiente bloque de código es una plantilla de inicio de sesión básica que se puede utilizar:

{% extends 'base.html' %}

{% block title %}Login{% endblock %}

{% block content %}
  <h2>Login</h2>
  <form method="post"> #This is a standard form to send data.
    {% csrf_token %} #Security tag to prevent <a target="_blank" href="https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)">XSS Attacks</a>, among other concerns.
    {{ form.as_p }} #Ouputs the form's contents between paragraph tags.
    <button type="submit">Login</button> #A submit button. 
  </form>
{% endblock %}

Finalmente, configuramos el proyecto para que busque la carpeta “templates” a través del archivo “settings.py”, actualizando DIRS:

TEMPLATES = [
    {
        ...
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        ...
    },
]

¡Voila! Una página de inicio de sesión simple que puede autenticar correctamente a un usuario a través de una validación de nombre de usuario y contraseña.

Conclusión

Python se ha utilizado ampliamente para la programación del lado del servidor, debido a sus capacidades dinámicas de creación de sitios web. Este lenguaje es ampliamente utilizado para la creación rápida de prototipos y la construcción de aplicaciones web altamente escalables por líderes tecnológicos como Google e incluso la NASA.

Python es, sin lugar a dudas, imprescindible cuando se adopta un enfoque digital primero para mantenerse competitivo, que se ve reforzado por el ascenso meteórico de la industria fintech.

Además, estos frameworks de Python reducen el esfuerzo de desarrollo mediante la provisión de una variedad de funcionalidades integradas. El único desafío sería cuál usar, adaptado a las necesidades específicas para obtener mejores resultados.

 

About the author

Ramiro de la Vega

Bienvenido a Pharos.sh

Soy Ramiro de la Vega, Estadounidense con raíces Españolas. Empecé a programar hace casi 20 años cuando era muy jovencito.

Espero que en mi web encuentres la inspiración y ayuda que necesitas para adentrarte en el fantástico mundo de la programación y conseguir tus objetivos por difíciles que sean.

Add comment

Sobre mi

Últimos Post

Etiquetas

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con tus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, aceptas el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad