Programación Back End - Unidad 1
Programación Back End - Unidad 1
2
Programación Back-End es una asignatura
práctica, presencial, del área formativa de
especialidad, que contribuye a que el
estudiante desarrolle conocimientos y
habilidades relacionadas con la programación
del lado del servidor. Al finalizar la asignatura
los estudiantes serán capaces de construir
una API REST, utilizando un lenguaje de
programación del lado del servidor.
3
La asignatura se distribuye en tres
unidades
Unidad 1
Unidad 2
Tecnologías del lado
del servidor Unidad 3
Framework Back-
end API RESTful con
integración de Base
de Datos
4
¿Qué debo leer?
• Python: aplicaciones prácticas; Nolasco Valenzuela, Jorge
Santiago; 2018; 9788499647890; RA-MA Editorial
• Django project blueprints; Ahmed, Asad Jibran; 2016;
9781783985425; Packt Publishing
• Django design patterns and best practices: industry-standard web
development techniques and solutions using Python; Ravindran,
Arun; 2018; 9781788831345; Packt Publishing
• Django 2 by example : build powerful and reliable Python web
applications from Scratch; Melé, Antonio; 2018; 9781788472487;
Packt Publishing
5
¿Qué debo leer?
• Django RESTful web services: the easiest way to build Python
RESTful APIs and web services with Django; Hillar, Gastón C.;
2018; 9781788835572; Packt Publishing
• Django: web development with Python; Dauzon, Samuel; 2016;
9781787123922; Packt Publishing
• Advanced guide to Python 3 programming; Hunt, John; 2019;
9783030259433; Springer International
6
Y por supuesto…
7
¿Qué herramientas vamos a utilizar?
• Visual Studio Code (https://code.visualstudio.com/)
• Python 3.10 (https://www.python.org/)
• Django Framework (https://www.djangoproject.com/)
• Virtualenv (https://pypi.org/project/virtualenv/) (Opcional)
• MySQL (https://dev.mysql.com/downloads/mysql)
• MySQL Workbench
(https://dev.mysql.com/downloads/workbench)
8
Unidad 1
Tecnologías del lado del servidor
9
Agenda
• Unidad 1:
• Tecnologías del lado del servidor,
protocolos, servicios de hosting
y dominios
10
¿Qué es la programación del lado del
servidor?
• La programación del lado del servidor es una tecnología que
consiste en el procesamiento de una petición de un usuario
mediante la interpretación de un script en el servidor web para
generar archivos HTML o de otros tipos (como PDFs, imágenes,
entre otros), o datos (JSON, XML u otros), dinámicamente como
respuesta.
• La comunicación se hace mediante el protocolo HTTP/HTTPS.
11
¿Qué es un servidor web?
• Un servidor web es un software que forma parte del servidor y
tiene como misión principal devolver información (páginas)
cuando recibe peticiones por parte de los usuarios.
• En otras palabras, es el software que permite que los usuarios que
quieren ver una página web en su navegador puedan hacerlo.
12
Protocolos HTTP y HTTPS
• Las siglas HTTP, acrónimo de Hypertext Transfer Protocol, es un
protocolo de transferencia de hipertexto. En otras palabras, HTTP es
un protocolo de comunicación que permite la transferencia de
información en Internet.
• HTTPS utiliza una combinación de los protocolos HTTP y SSL/TLS, que
permite que cualquier tipo de información que se transmita en la red
sea cifrada y nadie pueda acceder a ella, únicamente navegador y
servidor web.
• La principal diferencia entre HTTP y HTTPS es la seguridad. El
protocolo HTTPS impide que otros usuarios puedan interceptar la
información que se transfiere entre el cliente y el servidor web.
13
Métodos de petición HTTP
Método Definición
GET El método GET solicita una representación de un recurso específico. Las peticiones que
usan el método GET sólo deben recuperar datos.
POST El método POST se utiliza para enviar una entidad a un recurso en específico, causando a
menudo un cambio en el estado o efectos secundarios en el servidor.
PUT El modo PUT reemplaza todas las representaciones actuales del recurso de destino con la
carga útil de la petición.
PATCH El método PATCH es utilizado para aplicar modificaciones parciales a un recurso.
Especificaciones
DELETE El método DELETE borra un recurso en específico.
14
Métodos de petición HTTP
Método Definición
HEAD El método HEAD pide una respuesta idéntica a la de una petición GET, pero sin el cuerpo de
la respuesta.
CONNECT El método CONNECT establece un túnel hacia el servidor identificado por el recurso.
OPTIONS El método OPTIONS es utilizado para describir las opciones de comunicación para el recurso
de destino.
TRACE El método TRACE realiza una prueba de bucle de retorno de mensaje a lo largo de la ruta al
recurso de destino.
15
Web Hosting
• El alojamiento web (en inglés web hosting) es el servicio que provee a
los usuarios de Internet un sistema para poder almacenar información,
imágenes, vídeo, o cualquier contenido accesible vía web. Es una
analogía de “hospedaje o alojamiento en hoteles o habitaciones” donde
uno ocupa un lugar específico, en este caso la analogía alojamiento web
o alojamiento de páginas web, se refiere al lugar que ocupa una página
web, sitio web, sistema, correo electrónico, archivos etc. en internet o
más específicamente en un servidor que por lo general hospeda varias
aplicaciones o páginas web.
16
Dominios
• Un dominio es el nombre por el cual se le conoce a un sitio web,
una dirección fácil de recordar que tus usuarios usarán para
encontrar y acceder a tu sitio web.
• Los dominios pueden hacer referencia a cualquier recurso en
Internet y son de carácter único en todo el planeta.
17
Agenda
• Unidad 1:
• Introducción a la programación
del lado del servidor
18
¿Qué es el Back End?
• Back end es un término técnico que utilizan los profesionales de la
informática y los programadores. Básicamente, el back-end es el
código de programación que se ocupa de las operaciones del lado
del servidor, incluidas las funciones CRUD con la base de datos y
toda la lógica del servidor.
19
¿Qué es el Back End?
20
¿Cómo funciona una aplicación Back End?
GET/POST GET/POST/PUT/
PATCH/DELETE
Chrome,
Firefox, Opera,
Edge
21
Lenguajes del lado del servidor
22
Agenda
• Unidad 1:
• Modelo Vista Controlador (MVC)
23
¿Qué es el patrón MVC?
• MVC es un patrón arquitectura, un modelo o guía que propone,
independientemente de las tecnologías o entornos en los que se
base el sistema a desarrollar, la separación de los componentes
de una aplicación en tres grupos (o capas) principales, y describe
cómo se relacionarán entre ellos para mantener una estructura
organizada, limpia y con un acoplamiento mínimo entre las
distintas capas.
24
¿Qué es el patrón MVC?
• Su nombre proviene de las iniciales de Modelo-Vista-Controlador
(Model-View-Controller, en inglés), que son las capas o grupos de
componentes en los que organizaremos nuestras aplicaciones
bajo este paradigma:
• Modelo:
En la capa Modelo encontraremos siempre una representación de los datos del
dominio, es decir, aquellas entidades que nos servirán para almacenar información del
sistema que estamos desarrollando. Por ejemplo, si estamos desarrollando una
aplicación de facturación, en el modelo existirán las clases Factura, Cliente o
Proveedor, entre otras.
25
¿Qué es el patrón MVC?
• Vista:
Los componentes de la Vista son los responsables de generar la interfaz de nuestra
aplicación, es decir, de componer las pantallas, páginas, o cualquier tipo de resultado
utilizable por el usuario o cliente del sistema. De hecho, suele decirse que la Vista es una
representación del estado del Modelo en un momento concreto y en el contexto de una
acción determinada.
• Controlador:
La misión principal de los componentes incluidos en el Controlador es actuar como
intermediarios entre el usuario y el sistema. Serán capaces de capturar las acciones de
éste sobre la Vista, como puede ser la pulsación de un botón o la selección de una opción
de menú, interpretarlas y actuar en función de ellas. Por ejemplo, retornando al usuario una
nueva vista que represente el estado actual del sistema, o invocando a acciones definidas
en el Modelo para consultar o actualizar información.
26
¿Qué es el patrón MVC?
27
Agenda
• Unidad 1:
• Python Avanzado (Módulos,
Packages, Exceptions)
28
¿Qué es Python?
• Python es un lenguaje de alto nivel de programación interpretado y
multiparadigma, lo que permite que sea utilizado para desarrollar
aplicaciones de todo tipo.
• Fue creado por Guido van Rossum, y lanzado en 1991.
• Python está destinado a ser un lenguaje de fácil lectura. Su
formato es visualmente ordenado y, a menudo, usa palabras clave
en inglés donde otros idiomas usan puntuación.
29
Características de Python
• Lenguaje interpretado
• Tipado dinámico
• Fuertemente tipado
• Multiplataforma
• Multiparadigma
• Orientado a objetos
30
Módulos y paquetes
• Los módulos en Python son
simplemente archivos Python
con la extensión .py, que
implementa un conjunto de
funciones.
• Los módulos son importados
desde otros módulos usando el
comando import.
31
Módulos y paquetes
• Los paquetes en Python son espacios de nombre que contienen
múltiples paquetes y módulos múltiples. Son simplemente
directorios, pero dándole un giro.
• Cada paquete en Python es un directorio que debe contener un
archivo especial llamado __init__.py.
32
Manejo de excepciones
• Las excepciones son errores
detectados durante la
ejecución.
• La imagen muestra la
estructura básica del manejo
de errores
33
Manejo de excepciones
34
Agenda
• Unidad 1:
• Django (Configuración, Rutas y
Vistas)
35
¿Qué es Django?
• Es un framework web desarrollado en Python.
• La primera versión fue creada en 2003, por los desarrolladores
web del diario Lawrence Journal-World.
• Fue liberado al público bajo licencia BSD el año 2005.
• Desde el año 2008, la Django Software Foundation (DSF) se hace
cargo del proyecto.
• Promueve la filosofía del desarrollo ágil y extensible, aplicando el
principio DRY (don’t repeat yourself).
36
¿Qué es Django?
• Algunas de sus características más importantes son:
• Basado en componentes reutilizables
• Uso de ORM (Object-Relational Mapping) para el trabajo con bases de
datos
• Un panel de administración extensible
• Sistema de plantillas extensibles
37
Instalación y configuración de Django
# instalación de Django
pip install –upgrade Django
# creación de la aplicación
django-admin startproject <nombre-proyecto> .
38
Estructura de carpetas de un proyecto
Django
my_service/ # Carpeta del sitio web
manage.py # Script para ejecutar las herramientas de Django en este proyecto
my_service/ # Carpeta del sitio web
asgi.py # Interfaz asíncrona del servidor web
settings.py # Contiene toda la configuración del sitio
urls.py # Define los mapeos url-vistas
wsgi.py # Interfaz del servidor web
__init__.py # Script para que Python reconozca la carpeta como paquete
39
Aplicaciones en Django
• Una aplicación Django es un paquete de Python que está
específicamente destinado a ser utilizado en un proyecto Django.
• Una aplicación puede utilizar las convenciones comunes de
Django, como tener submódulos de modelos, pruebas, urls y
vistas.
40
Aplicaciones en Django
# nueva aplicación
python manage.py startapp <nombre-aplicación>
41
Rutas en Django
• Cada página de Internet necesita su propia URL. De esta manera
tu aplicación sabe lo que debe mostrar a un usuario que abre esa
URL.
• En Django, se usa algo llamado URLconf (configuración de URL).
URLconf es un conjunto de patrones que Django intentará hacer
coincidir con la URL solicitada para encontrar la vista correcta.
• La configuración de las URL sea realiza en el archivo urls.py,
que se encuentra dentro de la carpeta del proyecto principal.
42
Rutas en Django
43
Vistas en Django
• Una vista es un lugar donde ponemos la lógica de nuestra
aplicación.
• La configuración de las vistas sea realiza en el archivo views.py,
que se encuentra dentro de la carpeta del proyecto principal.
44
Vistas en Django
45
Manos a la obra
46