Maison > développement back-end > Tutoriel Python > 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
Libérer: 2024-02-08 20:45:13
avant
470 Les gens l'ont consulté

如何在 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
Copier après la connexion

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!

source:stackoverflow.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal