Creamos una carpeta djangogirls.
En la carpeta djangogirls, ahora creamos un proyecto con el siguiente comando:
Si muestra que no reconoce el comando
Ya se ha creado con éxito el proyecto1, si vamos a pycharm nos mostrara una estructura como esta:
django-admin starproject nombre_proyecto
Se seguirá lo siguiente:
Ya se ha creado con éxito el proyecto1, si vamos a pycharm nos mostrara una estructura como esta:
Ya que nos encontramos en la carpeta djangogirls, nos dirigimos a setttings donde cambiaremos la configuración cambiando la linea de código "en-us" a "es-mx", a partir de ahora el sitio se nos mostrara en español.
Configurar una base de datos
La base de datos que se utilizara sera la de defecto:
Para hacer una migración, no dirigimos nuevamente a consola.Accedemos a proyecto1 y ejecutamos el siguiente comando:
python manage.py migrate
Inicio de servidor
En la consola, ahora vamos a inicia el servidor, para ellos con el comando:
python manage.py runserver
Ahora comprobamos el sitio se este ejecutando, abrimos el navegador (chrome).
Mientra el servidor se este ejecutando, no se pondrán ejecutar comando adicionales, para cerrar ctrl+c.
Crear una aplicación
Para mantener todo en orden creamos una app blog, para crea un aplicación ejecutamos el siguiente comando en consola:
django-admin startapp nombre_app
Al ir a pycharm veras que se ha creado un nuevo directorio blog.
Después de crearla necesitamos decirle a django que debe utilizarla, eso se hace en settings,agregamos una linea blog, debemos tener algo así:
Crear el modelo del Post
En el archivo blog/models.py, borramos todo y escribimos este código:
from django.db import models from django.utils import timezone class Post(models.Model): author = models.ForeignKey('auth.User', on_delete=models.CASCADE) title = models.CharField(max_length=200) text = models.TextField() created_date = models.DateTimeField( default=timezone.now) published_date = models.DateTimeField( blank=True, null=True) def publish(self): self.published_date = timezone.now() self.save() def __str__(self): return self.title
- models.CharField, así es como defines un texto con un número limitado de caracteres.
- models.TextField, este es para texto largo sin límite.
- models.DateTimeField, este es fecha y hora.
- modelos.ForeignKey, este es una relación (link) con otro modelo
Tenemos que hacer saber a django que hemos realizado cambios, escribimos el siguiente comando:
python manage.py makegrations blog
Se verá asi:
Ahora ejecutamos lo siguiente:
python manage.py migrate blog
Nuestro modelo Post ya esta en nuestra base de datos.
Administrador django
Para agregar, editar y borrar los posts que hemos modelado, usaremos el administrador (admin) de Django.
Abre el fichero blog/admin en pycharm y remplaza el código con esto:
Código: from django.contrib import admin from .models import Post admin.site.register(Post)
Ahora ejecutamos python manage.py runserver en la consola para correr el servicio web. Ve a tu navegador y escribe la dirección http://127.0.0.1:8000/admin/. Veras una página de inicio de sesión como esta:
Para iniciar sesión, deberás crear un superusuario (superuser), que es un usuario que tiene control sobre todo el sitio. Vuelve a la línea de comandos, escribe python manage.py createsuperuser y pulsa enter.
Nota: Al momento de ingresar el password, se mostrara vació, como si no ingresaras la contraseña.
Una vez registrado el usuario, volvemos a consola y ejecutamos el comando python manage.py runserver para correr el servidor, vamos navegador http://127.0.0.1:8000/admin/ nos mostrara.
Aquí vamos a ingresar el nombre de usuario, tanto como el password.
Nos mostrará lo siguiente.
Podemos agregar varios POST, y vemos que el modelo que se ha creado son los campos que nos permite llenar esta aplicación.
Referencia:
https://tutorial.djangogirls.org/es/django_admin/