Maison  >  Article  >  développement back-end  >  Comment utiliser la même URL et la même classe pour les fonctions put, get, post, delete dans l'API de base de classe drf

Comment utiliser la même URL et la même classe pour les fonctions put, get, post, delete dans l'API de base de classe drf

PHPz
PHPzavant
2024-02-08 20:45:13396parcourir

如何在 drf 类基础 api 中对 put、get、post、delete 函数使用相同的 url 和类

Contenu de la question

Dans mon fichier de vue, je veux cette logique :

Articles (apiview) :

def get(self, reqeust, id):
    #logic
def put(self, request, id):
    #logic  
def post(self, requst, id):
    #logic
def delete(self, request, id):
    #logic

Je veux une URL de poignée comme celle-ci :

/articles/int:pk # Afficher les articles avec id=pk /articles/add # Ajouter des articles à la base de données Attends...

Mais j'ai une question, je ne veux pas utiliser différentes classes pour différentes URL, en même temps je veux que si j'appelle /articles/add , post-appel de méthode, quelle est la meilleure façon d'y parvenir ?

sry, je suis très nouveau sur python et drf, j'apprécierais de l'aide sur la meilleure façon de procéder,

Est-ce que je me trompe complètement ? Je ne veux tout simplement pas utiliser drf dans la méthode apiview pour fournir une classe différente pour chaque message, obtenez...


Bonne réponse


Ce que vous décrivez ici existe déjà : c'est ViewSet  [drf-doc]. Cela combine différentes méthodes dans la même classe. Utilisez généralement le même sérialiseur, etc. Cela regroupe donc logiquement ce qui est souvent très similaire.

Afin de router correctement les éléments, Router [drf-doc] est utilisé pour réaliser les chemins correspondants. Certains ont des clés primaires, telles que GET, PUT, PATCH et DELETE, contrairement à POST. Vous pouvez ensuite le personnaliser davantage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer