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
deck
By Maricela Sanchez
deck
- 785