Please enable JavaScript.
Coggle requires JavaScript to display documents.
DJANGO, INITIALIZE PROJECT, CREATING APPS, ORM, CONSOLA INTERACTIVA DJANGO…
DJANGO
Init Python env: 1. python3 -m venv tutorial-env , enter into the venv with .\venv\Scripts\activate install django: pip install django
-
Proyecto: Es una colección de configuraciones y apps pra un sitio web en particular. Apps: Es un conjunto portable de una funcionalidad (usuarios, clientes, proveedores, logica de negocio)
-
ORM es una técnica que nos permite crear una Base de datos orientada a objetos (virtual) que opera sobre la Base de Datos (real). Se puede utilizar herencia y polimorfismo y acceder a los atributos de las clases sin necesidad de escribir SQL
In the models.py create two tables with ORM:
class Question(models.Model): question_text = models.Charfield(max_length=200) pub_date = models-DatetimeField("date pusblished")
class Choices(models.Model): question= models.ForeignKey(Question, on_delete=models.CASCADE) choice_text = models.CharField(max_length=200) votes=models.IntegerField(default=0)
def str todos método de una clase como primer atributo lleva self esto significa que cada vez que se llame un objeto de tipo Question se retorne el campo question_text def __str__(self): return self.question_text
Los dunders methods son una manera en la que se puede definir el comportamiento que tendran nuestro objetos al aplicar sobre ellos diversas built-it functions de Python. - str: definimos el comportamiento que tendrá un objeto A al aplicar str(a)
Para traer y filtrar información de la DB existen tres métodos pertenecientes a FIELDLOOKUPS (get, exclude y filter) cabe resaltar que el metodo get al no encontrar coincidencias retorna un error que debe manejarse con Does not exist: Question.objects.get(pk=1) Question.objects.filter(pub_time__lte=(timezone.now() - timedelta(hours=12))) Los atributos tienen la opción de tener doble guion al piso para filtrar por parametros definidos (day, month, year) como se denota en el ejemplo anterior.
El método filter maneja varios atributos internos de búsqueda: __gt = Mayor que
__gte = Mayor o igual que
__lt = Menor que
__lte = Menos o igual que __startswith = Empieza con ____endswith = Termina con ____iexact: Un case-insensitive match ____contains = contiene
MAKING QUERIES Para crear registros en la tabla con FK se necesita llamar al registro de la tabla con la PK q = Question.objects.get(pk=1) Para acceder a los registros de ese item relacionados en la segunda tabla: FK q.choice_set.all() Para crear los registros relacionados: q.choice_set.create(choice_text ="Curso Básico de Python", votes=0) Django añade el id automaticamente. Para contar las relaciones con FK se tiene q.choice_set.count(). Para obtener respuestas en la tabla PK desde la tabla de FK se tiene: Choice.objects.filter(questionpub_dateyear=timezone.now().year)
-
Para registrar los modelos en el admin: Ir al archivo admin.py y agregar admin.site.register(Question) para uno o más admin.site.register([Question, Choice])
-
Para recibir parametros en las views se tiene: def detail(request, question_id): return HttpResponse(f"Estas viendo la pregunta numero {question id}") para la config de la URL se tiene: path('<int:question_id>', views.detail, name="detail")
Para llamar un template se debe utilizar la funcion render(request, 'template_name.html', { 'myValue': 'my value'})
-
-
-
-
-
-
-