Breaking

Post Top Ad

Your Ad Spot

martes, 9 de julio de 2019

Una breve mirada al desarrollo web en Python

Introducción

Desde 2003, Python se ha clasificado entre los 10 mejores lenguajes de programación para aprender y su clasificación ha mejorado constantemente desde entonces. Según una estadística , Python es uno de los 5 mejores idiomas 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, los gigantes de la tecnología 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 auge del póster de Silicon Valley y Wall Street: Fintech . Las razones son muchas , pero Python ofrece la seguridad y la escalabilidad que busca la tendencia de primer enfoque digital 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 aprendizaje automático y la ciencia de la información 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 usando Python

Python ofrece algo para todos a través de sus numerosos marcos. Un marco es un paquete 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 sabes qué marco web es el adecuado para ti? Para aplicaciones web completas, Django y Pyramidson el camino a seguir. Para un mejor control y visualización o creación de prototipos de una aplicación, Web2py o Flask pueden tener algo que ofrecer a su proyecto. CheeryPy es una necesidad para soluciones simples y minimalistas. Tornado manejará 10,000 o más conexiones simultáneas a su aplicación al mismo tiempo, mientras que Dash es la opción perfecta para aplicaciones analíticas.
En este artículo, proporcionaremos una breve descripción de tres de las selecciones más populares de desarrolladores y compañías de programación: Django, Pyramid y Flask. Después de la visión general, mostraremos el marco más popular, Django, en acción a través del uso de un sistema de inicio de sesión de ejemplo.

Django

Este marco es la encarnación de la frase "baterías incluidas". Definido como "el marco web para perfeccionistas con plazos". Sus características integradas permiten una amplia gama de aplicaciones web, como aplicaciones de bases de datos, chatbots, soluciones de GPS, etc.
La filosofía de DRY (Don't Repeat Yourself) no solo permite, sino que también promueve, la reutilización del código, dividiendo el tiempo de codificación a la mitad. Además, su arquitectura modular / desacoplada permite la 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 también le permite trabajar con varias bases de datos a la vez.
Finalmente, Django es amigable con SEO (Search Engine Optimization). 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 "no demasiado pequeño, no demasiado grande, simplemente correcto". Pyramid es un marco enfocado en el acabado con la capacidad de comenzar poco a 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 pequeñas y grandes, pero se distingue de Django en su complejidad.
Si bien en sí misma se puede considerar una opción magra en comparación con otros marcos, Pyramid brilla con su sistema de complementos, lo que permite a los desarrolladores conectar 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 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, sugeriría que siempre uses Flask en lugar de usar un caballo de poder de habilidad excesiva como Django. Flask se basa en gran medida en las plantillas de Jinja 2 y el kit de herramientas Werkzeug WSGI (Web Server Gateway Interface).
Autodefinido como microframework, Flask se adapta a soluciones a pequeña escala, como aplicaciones simples o API, donde la funcionalidad lean es una prioridad máxima. Flask es también el microframework más utilizado para crear prototipos. Al crear una aplicación de trabajo 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 trabajo 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 Django.

Instalando Django

Para este ejemplo, el módulo PIP necesita ser instalado. Una vez hecho esto, Django se puede instalar 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 a través de la dirección http://127.0.0.1:8000 ". La pantalla de bienvenida de Django se cargará en el navegador, lo que indica que la instalación fue un éxito.

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 sistema de autenticación integrado en el marco de Django , y contiene sus modelos predeterminados.
Para utilizar 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']  
La django.contrib.auth.views.loginvista 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 usar:
{% 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 buscar la carpeta "plantillas" 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 ha sido ampliamente utilizado para la programación del lado del servidor, debido a sus capacidades dinámicas de creación de sitios web. ¡Este lenguaje se usa ampliamente para la creación rápida de prototipos y la creación de aplicaciones web altamente escalables por parte de líderes tecnológicos como Google e incluso la NASA!
Python es, sin lugar a dudas, una necesidad cuando se trata de un enfoque digital para mantenerse competitivo, que se ve reforzado por el meteórico ascenso de la industria fintech.
Además, estos marcos Python reducen el esfuerzo de desarrollo a través de la provisión de una variedad de funcionalidades incorporadas. El único desafío sería cuál usar, adaptado a las necesidades específicas para obtener mejores resultados.

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas