Círculo de estudio

Agenda

  • class Meta
  • self
  • __init__ y __new__
  • Proyectos
  • ¿Cómo crear un venv?
  • ¿Cómo conectarse a una DB MySQL?

class Meta

class Meta es una funcionalidad dentro de Django que nos permite configurar opciones de los datos(metadata options) dentro de cada clase que tenga esta funcionalidad.

#models.py
from django.db import models


class Lapiz(models.Model):
    numero = models.IntegerField()

    class Meta:
        ordering = ["-id"]
        verbose_name_plural = "lapices"
 
 
#serializers.py
from rest_framework import serializers
        
        
class AccountSerializer(serializers.ModelSerializer):
    class Meta:
        model = Account
        fields = ['id', 'account_name', 'users', 'created']

self

self es una palabra resevada que representa la instancia de una clase. Por medio de ella podemos acceder a los atributos y métodos del objeto

class Cat:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def info(self):
        print(f"I am a cat. My name is {self.name}. I am {self.age} years old.")

    def make_sound(self):
        print("Meow")

__init__ y __new__

__init__ y __new__ son dos métodos llamados cuando un nuevo objeto es creado.

 __new__ es el método encargado de crear la nueva instancia de una clase, mientras que __init__ es el encargado de inicializar esa instancia.

 

class Point(object):

    def __new__(cls,*args,**kwargs):
        print("From new")
        obj = super().__new__(cls)
        return obj

    def __init__(self,x = 0,y = 0):
        print("From init")
        self.x = x
        self.y = y

Proyectos para aprender

  • https://realpython.com/get-started-with-django-1/
  • https://realpython.com/courses/make-location-based-web-app-django-and-geodjango/
  • Django by example

¿Cómo crear un venv?

¿Cómo conectarse a una BD MySQL desde Django?

CREATE USER 'Bedutravels'@'localhost' IDENTIFIED BY 'Bedutravels';
DROP DATABASE IF EXISTS Bedutravels;
CREATE DATABASE Bedutravels;
GRANT ALL PRIVILEGES ON Bedutravels.* TO Bedutravels@'%' IDENTIFIED BY 'Bedutravels';
GRANT ALL PRIVILEGES ON Bedutravels.* TO Bedutravels@'localhost' IDENTIFIED BY 'Bedutravels';
FLUSH PRIVILEGES;
$ docker pull mariadb:10.3
$ docker create --name pythonsql -e MYSQL_ROOT_PASSWORD=pythonsql -p 3306:3306 mariadb:10.3
$ docker start pythonsql
$ docker exec -i pythonsql mysql -hlocalhost -uroot -ppythonsql < bedutravels.sql
$ docker exec -it pythonsql mysql -hlocalhost -uBedutravels -pBedutravels Bedutravels

 

 

Recursos

  • https://docs.djangoproject.com/en/3.0/ref/models/options/
  • https://www.programiz.com/article/python-self-why
  • Bullet Three
Made with Slides.com