Design dell'API Django

1

Recentemente ho seguito il tutorial sull'esempio di Django. link

Quando avvio una richiesta POST, il mio intento è che dopo aver inserito il record nel database, avviare un processo. Esempio:

POST server/

Inserirà un nuovo record "server", restituirà 201 al client API e dietro le quinte voglio avviare un processo che installerà e scoprirà il server tramite alcuni ssh / icmp. Qual è il posto migliore dove mettere questo codice per un tutorial o un consiglio? Come posso restituire un 201 e successivamente eseguire il mio processo di scoperta. È meglio monitorare il db per i nuovi record e fare in modo che sia diverso?

@csrf_exempt
def snippet_list(request):
    """
    List all code snippets, or create a new snippet.
    """
    if request.method == 'GET':
        snippets = Snippet.objects.all()
        serializer = SnippetSerializer(snippets, many=True)
        return JSONResponse(serializer.data)

    elif request.method == 'POST':
        data = JSONParser().parse(request)
        serializer = SnippetSerializer(data=data)
        if serializer.is_valid():
            serializer.save()
            <? is here?>
            return JSONResponse(serializer.data, status=201)
        return JSONResponse(serializer.errors, status=400)
    
posta spicyramen 12.07.2015 - 07:25
fonte

1 risposta

1

Se hai solo bisogno di farlo durante la creazione di un record, perché non chiamare il metodo come parte della vista. Qualcosa di simile.

Server_form = ServerForm(request.POST)
if server_form.is_valid():
    profile = server_form.save(commit=False) 
    profile.user = request.user
   #insert your code here to call your method

    profile.save()
    
risposta data 31.08.2016 - 02:57
fonte

Leggi altre domande sui tag