2
respostas

Definição dos métodos get e post

Não entendi porque durante o vídeo, os métodos foram escritos como:

def get(self ,request): e def post(self ,request): 

e no código disponibilizado está:

def get(self ,request, *args, **kwargs): e def post(self ,request, *args, **kwargs):
2 respostas

Olá Clayton!

Nesse caso não há diferença, o *args e **kwargs são opcionais, ou seja, você pode utilizar ou não.

Agora pra falar um pouco sobre suas utilizações:

ARGS

Quando temos um atributo com um asterisco na frente significa que podemos passar vários atributos como parâmetro. Por exemplo:

def titulos_copa_do_mundo(pais, *args):    
     print('País: ', pais))    
     for titulo in args:
        print('Ano: ', titulo)

Assim podemos chamar o método da seguinte forma:

titulos_copa_do_mundo('Brasil', '1958', '1962', '1970', '1994', '2002')

E a saída seria:

País:  Brasil
Ano:  1958
Ano:  1962
Ano:  1970
Ano:  1994
Ano:  2002

KWARGS

Já quando temos dois atributos na frente de um parâmetro significa que podemos passar diversos argumentos que podem ser opcionais. Por exemplo:

def calcular_preco(valor, **kwargs):
    imposto = kwargs.get('imposto')
    desconto = kwargs.get('desconto')
    if imposto:
        valor += valor * (imposto / 100)
    if desconto:
        valor -= desconto
    return valor

Para calcularmos o valor normal:

preco_final = calcular_preco(1000)
print(preco_final)
//1000

Para calcularmos o valor com desconto:

preco_final = calcular_preco(1000, desconto=500)
print(preco_final)
//500

Para calcularmos o valor com imposto:

preco_final = calcular_preco(1000, imposto=50)
print(preco_final)
// 1500

Espero que tenha ajudado!

Bons estudos!

Olá Clayton!

Conseguiu sanar sua dúvida?

Caso sim, peço para que feche o tópico marcando a solução por favor.

Obrigado!