Skip to content

Creación de Aplicaciones

Luego pasamos al siguiente paso que corresponde iniciar las aplicaciones que integran el sitio web, que para este caso serian (ventas, productos y clientes).

Para una mejor organización de las aplicaciones crearemos una carpeta llamadas Apps. y dentro de esta carpeta creamos ventas y compras.

mkdir Apps
cd Apps
django-admin startapp ventas
django-admin startapp productos
django-admin startapp clientes

Registro de la aplicaciones

Ahora que se ha creado la aplicación tenemos que registrarla en el proyecto de manera que sea incluida cuando cualquiera de las herramientas se ejecute (por ejemplo, para añadir modelos a la base de datos). Las aplicaciones se registran añadiéndolas a la lista de INSTALLED_APPS en los ajustes del proyecto.

Abre el fichero de ajustes del proyecto sitealmacen/sitealmacen/settings.py y encuentra la definición de la lista INSTALLED_APPS. Añade a continuación una nueva linea al final de la lista, como se muestra en negrilla abajo.

En la aplicación ventas: Para ello, primero cambie name = 'ventas' por name = 'Apps.ventas', debido a que nuestras aplicaciones las hemos incluido dentro de Apps. y por defecto Django asume que se instalan en el raíz de la carpeta de aplicación. como se muestra a continuación.

from django.apps import AppConfig


class VentasConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'Apps.ventas'

En la aplicación productos: Para ello, primero cambie name = 'productos' por name = 'Apps.productos', debido a que nuestras aplicaciones las hemos incluido dentro de Apps. y por defecto Django asume que se instalan en el raíz de la carpeta de aplicación. como se muestra a continuación.

from django.apps import AppConfig


class ProductosConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'Apps.productos'

En la aplicación clientes: Para ello, primero cambie name = 'clientes' por name = 'Apps.clientes', debido a que nuestras aplicaciones las hemos incluido dentro de Apps. y por defecto Django asume que se instalan en el raíz de la carpeta de aplicación. como se muestra a continuación.

from django.apps import AppConfig


class ClientesConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'Apps.clientes'

Luego, se registra en settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'Apps.ventas.apps.VentasConfig',
    'Apps.productos.apps.ProductosConfig',
    'Apps.clientes.apps.ClientesConfig'
]

Otros ajustes del proyecto

El Archivo settings.py se usa para configurar muchos otros ajustes, pero en este punto probablemente sólo querrás cambiar la TIME_ZONE --- ésta debería ser igual a una cadena de la Lista de base de datos tz de time zones (la columna TZ column de la tabla contiene los valores que quieres). Cambia tu TIME_ZONE al valor de entre estas cadenas que sea apropiado para tu zona de tiempo, por ejemplo:

LANGUAGE_CODE = 'es'
TIME_ZONE = 'America/Bogota'

Hay otros dos otros ajustes que no cambiarás ahora, pero de los que deberías ser consciente:

  • SECRET_KEY. Ésta es una clave secreta que se usa como parte de la estrategia de seguridad del sitio web de Django. Si no vas a proteger este código durante el desarrollo, necesitarás usar un código diferente (quizás leyendo de una variable de entorno o un fichero) cuando lo pongas en producción.

  • DEBUG. Ésto habilita que los registros (logs) de depuración se muestren en caso de error, en vez de las respuestas con los códigos de estado HTTP. Éste debería ajustarse a false en producción, ya que la información de depuración es útil a los atacantes.

Conectar el mapeador URL - Aplicacion Ventas

El sitio web se crea con un archivo mapeador de URLs (urls.py) en la carpeta del proyecto. Aunque puedes usar este fichero para gestionar todos tus mapeos URL, es más usual deferir los mapeos a su aplicación asociada.

Abre sitealmacen/sitealmacen/urls.py y fíjate en el texto educativo que explica algunas formas de usar el mapeador URL.

En primer lugar en este archivo se debe importar from django.urls import include

Nota: Luego incluir las rutas para cada aplicación (ventas, productos y clientes)

from django.contrib import admin
from django.urls import path
from django.urls import include


urlpatterns = [
    path('admin/', admin.site.urls),
    path('ventas/', include('Apps.ventas.urls')),
    path('productos/', include('Apps.productos.urls')),
    path('clientes/', include('Apps.clientes.urls')),
]

Luego configuramos Urls para cada aplicación

Crear archivo Urls en ventas:

path('ventas/', include('Apps.ventas.urls')), observe que en esta linea la separación de los puntos \< . >, indica la ruta para llegar al archivo, seria similar Apps/ventas/urls la extensión del archivo urls.py se omite.

Este archivo no existe, por cuanto toca crearlo en la ruta correspondiente.

Archivo Apps/ventas/urls.py

from django.urls import path

urlpatterns = [

]

Crear archivo Urls en productos:

Archivo Apps/productos/urls.py

from django.urls import path

urlpatterns = [

]

Crear archivo Urls en clientes:

Archivo Apps/clientes/urls.py

from django.urls import path

urlpatterns = [

]

Probar las Vistas en la aplicación ventas

Recordemos que Django utiliza el modelo MVC, es decir Modelo - Vista - Controlador. Es decir Q para visualizar alguna pagina dentro de la aplicación de ventas tendríamos que realizarlo en Views. y luego llamarlo desde Urls.

De la siguiente manera:

En Apps/ventas/views.py realizamos una función que llamaremos home de la siguiente manera:

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.


def home(request):
    return HttpResponse("Bienvenidos, Uniguajira!- Aplicación Ventas")

Luego importamos esta función en la ruta de urls de la aplicación y agregamos la ruta

Apps/ventas/urls.py

from django.urls import path
from Apps.ventas.views import home

urlpatterns = [
    path('inicio/', home, name= 'home'),
]

Probar las Vistas en la aplicación productos

Recordemos que Django utiliza el modelo MVC, es decir Modelo - Vista - Controlador. Es decir Q para visualizar alguna pagina dentro de la aplicación de productos tendríamos que realizarlo en Views. y luego llamarlo desde Urls.

De la siguiente manera:

En Apps/productos/views.py realizamos una función que llamaremos home de la siguiente manera:

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.


def home(request):
    return HttpResponse("Bienvenidos, Uniguajira!- Aplicación Productos")

Luego importamos esta función en la ruta de urls de la aplicación y agregamos la ruta

Apps/productos/urls.py

from django.urls import path
from Apps.productos.views import home

urlpatterns = [
    path('inicio/', home, name= 'home'),
]

Probar las Vistas en la aplicación clientes

Recordemos que Django utiliza el modelo MVC, es decir Modelo - Vista - Controlador. Es decir Q para visualizar alguna pagina dentro de la aplicación de clientes tendríamos que realizarlo en Views. y luego llamarlo desde Urls.

De la siguiente manera:

En Apps/clientes/views.py realizamos una función que llamaremos home de la siguiente manera:

from django.shortcuts import render
from django.http import HttpResponse


# Create your views here.


def home(request):
    return HttpResponse("Bienvenidos, Uniguajira!- Aplicación Clientes")

Luego importamos esta función en la ruta de urls de la aplicación y agregamos la ruta

Apps/clientes/urls.py

from django.urls import path
from Apps.clientes.views import home

urlpatterns = [
    path('inicio/', home, name= 'home'),
]

Para probar cada una de las vistas, primero indicamos la ruta por defecto de Django: localhost:8000, luego el nombre de acceso a la ruta de la aplicación: ventas, productos o clientes y luego la ruta creamos en la propia aplicación que llamamos: inicio. Como se muestra a continuación:

localhost:8000/ventas/inicio/

localhost:8000/productos/inicio/

localhost:8000/clientes/inicio/