Django: Guía para la creación de un blog - Parte 2

Creación del proyecto y estructura base

Lo primero que vamos a hacer es crear la carpeta miproyecto, nos pocisionamos dentro por consola y activamos el entorno virtual

~ source .env/bin/activate

Luego creamos el proyecto con el siguiente comando

django-admin startproject miproyecto .

El punto . es crucial porque le dice al script que instale Django en el directorio actual.

Esto nos creará el esqueleto del proyecto. Que solo son un montón de directorios y archivos que usaremos más tarde.

IMPORTANTE: Los nombres de algunos archivos y directorios son muy importantes para Django. No deberías renombrar los archivos que estamos a punto de crear ni moverlos a un lugar diferente. Django necesita mantener una cierta estructura para poder encontrar cosas importantes.

Después de ejecutar el comando anterior, se generará la estructura de carpetas base para un proyecto de Django. En este momento, nuestro directorio miproyecto deberia verse así:

miproyecto
├───manage.py
├───miproyecto
│        settings.py
│        urls.py
│        wsgi.py
│        __init__.py
└───requirements.txt

 

Nuestra estructura del proyecto inicial se compone de varios archivos

manage.py : es un script que ayuda con la administración del sitio. Se utiliza para ejecutar comandos de administración relacionados con nuestro proyecto. Lo usaremos para ejecutar el servidor de desarrollo, ejecutar pruebas, crear migraciones entre otras cosas.

__init__.py : este archivo vacío le dice a Python que esta carpeta es un paquete de Python.

settings.py : este archivo contiene toda la configuración del proyecto.

urls.py : este archivo es responsable de mapear las rutas y caminos en nuestro proyecto. Por ejemplo, si desea mostrar una URL como /contacto/, primero debe asignarse aquí.

Django viene con un servidor web instalado. Es muy conveniente durante el desarrollo, por lo que no tenemos que instalar nada más para ejecutar el proyecto localmente. Podemos probarlo ejecutando el comando:

python manage.py runserver

Por ahora, ignora los errores de migración; luego los correjiremos.

Ok, vé a tu navegador web y escribe la siguiente URL : http://127.0.0.1:8000 , se debería ver el siguiente mensaje:

The install worked successfully! Congratulations!

Presione Control + C para detener el servidor.

Lo siguiente que tenemos que hacer es crear la aplicación blog, para eso ejecutamos el siguiente comando

django-admin startapp blog

 se genera una nueva estructura de carpetas en el proyecto al crearse la aplicación blog, deberia verse así:

miproyecto
├───manage.py

├───blog
│        migrations/
│        admin.py
│        apps.py
│        models.py

│        tests.py
│        views.py
│        __init__.py
├───miproyecto
│        settings.py
│        urls.py
│        wsgi.py
│        __init__.py
└───requirements.txt

 

Qué hace cada archivo

migraciones/ : aquí Django almacena algunos archivos para realizar un seguimiento de los cambios que crea en el archivo models.py , para mantener la base de datos y los modelos.py sincronizados.

admin.py : este es un archivo de configuración para una aplicación Django incorporada llamada Django Admin.

apps.py : este es un archivo de configuración de la aplicación en sí.

models.py : aquí es donde definimos las entidades de nuestra aplicación web. Django traduce automáticamente los modelos en tablas de base de datos.

tests.py : este archivo se usa para escribir pruebas unitarias para la aplicación.

views.py : este es el archivo donde manejamos el ciclo de solicitud / respuesta de nuestra aplicación web.

Una vez creada nuestra primera aplicación, configuraremos nuestro proyecto para usarla. Lo que vamos a hacer es registrar nuestra aplicación, para eso vamos a nuestro archivo settings.py y en la sección INSTALLED_APPS al final de todo agregamos 'blog'

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth'
    'django.contrib.contenttypes',

    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    
    'blog',
]
 

Configuración del proyecto

Algunos de los cambios que podemos hacer en el settings.py es el de elegir tu zona horaria

TIME_ZONE = 'America/Argentina/Buenos_Aires'

Aqui tienes una lista de zonas horarias.

Django viene con muchas traducciones preparadas, Si quieres un idioma diferente, cambia el código de idioma cambiando la siguiente línea

LANGUAGE_CODE = 'es-es'

También tenemos que añadir una ruta para archivos estáticos

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

 

Configurar una base de datos

Por defecto utilizamos sqlite3, sin embargo podemos elegir otras como Postgresql, MySQL, etc.

Para crear la base de datos para nuestro blog, ejecutamos el siguiente comando en la consola

python manage.py migrate

Veremos

Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying admin.0003_logentry_add_action_flag_choices... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying auth.0009_alter_user_last_name_max_length... OK
  Applying auth.0010_alter_group_name_max_length... OK
  Applying auth.0011_update_proxy_permissions... OK
  Applying sessions.0001_initial... OK

Y listo!!, iniciamos el servidor web y vemos si todo funciona correctamente 

python manage.py runserver

 


 

PARTE 1 PARTE 3