Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie dieselbe URL und Klasse für die Funktionen „Put“, „Get“, „Post“ und „Delete“ in der Basis-API der DRF-Klasse

So verwenden Sie dieselbe URL und Klasse für die Funktionen „Put“, „Get“, „Post“ und „Delete“ in der Basis-API der DRF-Klasse

PHPz
PHPznach vorne
2024-02-08 20:45:13434Durchsuche

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

Frageninhalt

In meiner Ansichtsdatei möchte ich diese Logik:

Artikel (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

Ich möchte eine Handle-URL wie diese:

/articles/int:pk # Artikel mit id=pk anzeigen /articles/add # Artikel zur Datenbank hinzufügen Warte...

Aber ich habe eine Frage: Ich möchte nicht unterschiedliche Klassen für unterschiedliche URLs verwenden. Gleichzeitig möchte ich, wenn ich /articles/add aufrufe und einen Methodenaufruf poste, was ist der beste Weg, dies zu erreichen?

Sry, ich bin sehr neu in Python und DRF, ich würde mich über Hilfe freuen, wie ich das am besten machen kann,

Gehe ich das völlig falsch an? Ich möchte einfach nicht drf in der APIview-Methode verwenden, um für jeden Beitrag eine andere Klasse bereitzustellen, erhalten Sie ...


Richtige Antwort


Was Sie hier beschreiben, existiert bereits: nämlich ViewSet  [drf-doc]. Dadurch werden verschiedene Methoden in derselben Klasse kombiniert. Verwenden Sie normalerweise denselben Serialisierer usw. Es gruppiert also logisch, was oft sehr ähnlich ist.

Um Elemente korrekt zu leiten, werden mit Router [drf-doc] die entsprechenden Pfade erstellt. Einige verfügen über Primärschlüssel wie GET, PUT, PATCH und DELETE, POST jedoch nicht. Anschließend können Sie es weiter anpassen.

Das obige ist der detaillierte Inhalt vonSo verwenden Sie dieselbe URL und Klasse für die Funktionen „Put“, „Get“, „Post“ und „Delete“ in der Basis-API der DRF-Klasse. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen