Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

207
Visualizações
Django/Python POST API sin modelo/serializador

Quiero crear una API muy simple, con solo un punto final. Quiero enviar a una API un json como: {"proveedor": "com.facebook.orca", "código": "1", "color": "#FFFFF"}

Luego, quiero usar una biblioteca de python para controlar un dispositivo en mi habitación (python-yeelight). Quiero usar esto con un token de autenticación o una autenticación de nombre de usuario/contraseña.

Lo que encontré en Django Rest Framework fue demasiado complicado para lo que necesito (que es aceptar un POST y devolver un mensaje de "éxito" o "fallo".

¡Gracias!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Puede crear un decorador de métodos para implementar la autenticación básica. Envuelve todas tus vistas de django usando este decorador.

 def token_required(function): def wrap(request, *args, **kwargs): auth_token = request.META.get('HTTP_AUTHORIZATION_TOKEN') if auth_token: try: token = Tokens.objects.get(token=auth_token) user = token.user except Tokens.DoesNotExist: user=None else: r = { 'status': -1, 'message': 'Please provide a valid token.' } return HttpResponse(json.dumps(r), content_type="application/json") if user: request.user = user return function(request, *args, **kwargs) else: r = { 'status': -2, 'message': 'User not Authorised, Please login' } return HttpResponse(json.dumps(r), content_type="application/json") return wrap

Ahora todas sus solicitudes deben contener un encabezado como se muestra a continuación para las vistas envueltas por este decorador para detectar las vistas internas del usuario.

AUTORIZACIÓN-TOKEN: some_token_value

Su modelo de fichas se verá como se muestra a continuación.

 class Tokens(models.Model): user = models.OneToOneField(User, related_name="tokens",null=False) token = models.CharField(max_length=255, unique=True) def save(self, *args, **kwargs): if self.token is None or self.token == "": import uuid self.token=uuid.uuid4().hex super(Tokens, self).save(*args, **kwargs)

Ejemplo de uso de decorador:

 @csrf_exempt @token_required def your_view(request): pass

Supongo que esto debería ayudarte.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda