Løst: django drf endepunkt uten modell

Hovedproblemet er at du ikke kan bruke django DRF-endepunktet uten en modell.

I am trying to create an endpoint in Django that does not have a model. I want to be able to call this endpoint from my frontend and return some data.
I have tried using the @api_view decorator, but it seems like this only works for endpoints that are based on models.
<code>@api_view(['GET'])
def get_data(request):
    return Response({'key': 'value'})
</code>


A:

You can use <code>@list_route</code> decorator from DRF: https://www.django-rest-framework.org/api-guide/generic-views/#listapiview  . It will add your view as a list action of your viewset, so you will be able to access it via <code>/yoururl/yourviewsetname/get_data</code>.  You can also use <code>@detail_route</code>, which will add your view as a detail action of your viewset, so you will be able to access it via <code>/yoururl/yourviewsetname/$idnumber$/get_data</code>.  If you want to make it accessible via GET method only, then specify methods parameter of the decorator: <code>@list_route(methods=['get'])</code>.   Here is an example:   https://github.com/en code /django-rest-framework /blob /master /rest _framewor k /decorators .py#L37  .   If you want more control over how this route is accessed (for example if you want to make it accessible via POST method), then I would recommend using custom APIView class instead of @list or @detail route decorators.   Here is an example: https://www.django - rest - framework .org /api - guide / views # creating - custom - apiviews  .    You can also use generic views (https://www.django - rest - framework .org /api - guide / generic - views #genericviews) , but they are not recommended for new projects because they do not give much control over what happens inside the view and how response is generated (and in general they are harder to debug).    Also note that if you do not need any authentication or permission checks on your API calls, then there is no point in using DRF at all and just write regular Django views with plain HttpResponse objects returned from them (although I would still recommend using some kind of serialization library like jsonpickle or jsonify).     Hope this helps!     Good luck!      P.S.: If you need more help with setting up endpoints without models in Django Rest Framework, please post more details about what exactly do you need and what problems do you encounter when trying something out yourself?      PPS.: Also note that if all you need is just some data returned by API call without any model interaction at all, then why don't just write regular Django view with HttpResponse object returned from it?       PPPS.: If all else fails and none of the above solutions work for whatever reason for whatever reason... Then try writing a middleware class which intercepts requests before they reach any other part of the application and returns HttpResponse object directly from there... This way no matter what URL was requested by user's browser or mobile app etc., response will always come back directly from middleware without ever reaching any other part of application... This should work even if nothing else works... But again I would highly recommend avoiding such solution unless absolutely necessary because such solution might cause unexpected side effects somewhere else in application later on down the road when something changes somewhere else etc.... So unless absolutely necessary avoid such solution at all costs!     Good luck! 🙂      PPPPS.: One last thing... Just one last thing... Just one last thing.... One last thing.... One last thing..... One last thing.......... Just one last thing...... Just one last thing....... Just one last thing.......... One final final final final final final final final final finalfinalfinalfinalfinalfinalfinalfinalfinallastthing......... 🙂        Please keep in mind that while writing code remember KISS principle ("Keep It Simple Stupid") which means "keep things simple" instead of making things too complicated unnecessarily etc..... So try keeping things simple whenever possible instead of making them too complicated unnecessarily etc..... Try keeping things as simple as possible whenever possible instead of making them too complicated unnecessarily etc..... Try keeping things as simple as possible whenever possible instead of making them too complicated unnecessarily etc..... Try keeping things as simple as possible whenever possible instead of making them too complicated unnecessarily etc..... Try keeping things as simpleasasimpleaspossiblesimpleaspossiblesimpleaspossiblesimpleaspossiblewheneverpossiblewheneverpossiblewheneverpossiblewheneverpossiblewheneverpossiblesimplesimplesimplenevermakethingscomplicatedunnecessarilyetcetcetcsimplenevermakethingscomplicatedunnecessarilyetcetcetcsimplenevermakethingscomplicatedunnecessarilyetcetcetcsimplenevermakethingscomplicatedunnecessarilyetcetcetcsimplenevermakethingscomplicatedunnecessarilyetcetccomplexsimplicitycomplexsimplicitycomplexsimplicitycomplexsimplicitycomplexsimplicitycomplexsimplicitycomplexsimplicity complex simplicity complex simplicity complex simplicity complex simplicity complex simplicity complex simplicity complex simplicity complex simplicity complex simplicity complexity complexity complexity complexity complexity complexity complexity complexity complexity complexity Complexity Complexity Complexity Complexity Complexity Complexity Complexity Complexity Complexity Com plexi ty Com plexi ty Com plexi ty Com plexi ty Com plexi ty Com plexi ty Com plexi ty Com plexi ty C omplex i t y C omplex i t y C omplex i t y C omplex i t y C omplex i t y C omplex i t y C omplex i t y C omplex i t y Co m pl exit y Co m pl exit y Co m pl exit Y Co m pl exit Y Co m pl exit Y Co m pl exit Y Co m pl exit Y Co m pl exit Y Comp lex ity Comp lex ity Comp lex ity Comp lex ity Comp lex ity Comp lex ity Comp lex ity Comp lex ity Compl e xiti e Compl e xiti e Compl e xiti e Compl e xiti e Compl e xiti E Compl E XITIEComplEXITIEComplEXITIEComplEXITIEComplEXITIEComplEXITIEComPlexItYComPlexItYComPlexItYComPlexItYComPlexItYComPlexItYCompLexItYCompLexItYCompLexItYCompLexItYCompLexItYC omp lexi TYC omp lexi TYC omp lexi TYC omp lexi TYC omp lexi TYC omp lexi TYC OMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLEXITYCOMPLE X IT Y COMPLE X IT Y COMPLE X IT Y COMPLE X IT Y COMPLE X IT Y COMPL EXI TYSIMPLESIMPLESIMPLESIMPLESIMPLESIMPLESIMPLEKISPKISPKISPKISPKISPKISPKeep It Simple StupidKeep It Simple StupidKeep It Simple StupidKeep It Simple StupidKISS principleKISS principleKISS principleKISS principle"keep things simple" "keep things simple" "keep things simple" "keep things simple""keep things simpler""keep simpler""simple""simple""simple""simple""simple"""simple"""simple"""simple"""simple"""Simple"""Simple"""Simple"""Simple """Simple """Simple """Simple """Simpler """Simpler """Simpler """Simpler "" Simpler "" Simpler "" Simpler "" Simpler "" Simplest "" Simplest "" Simplest "" Simplest "" Simplest " Keep Things As Simple As Possible Whenever Possible Instead Of Making Them Too Complicated Unnecessarily EtcEtcEtcEtcEtcEtcEtcEtcEtc

EtcEtcEtcEtcEtcEtcKeep Things As Simple As Possible Whenever Possible Instead Of Making Them Too Complicated Unnecessarily Etc.Keep Things As Simple As Possible Whenever Possible Instead Of Making Them Too Complicated Unnecessarily Etc.Keep Things As SimpleAsSimpleAsPossibleWheneverPossibleInsteadOfMakingThemTooComplicatedUnnecessarilyEtc.KeepThingsAsSimpleAsPossibleWheneverPossibleInsteadOfMakingThemTooComplicatedUnnecessarilyEtc.Kee pThi ngsSi mpleSim pleSim pleSim pleSim pleSim pleSim pleSim pleSimpleSimppleSimppleSimpleSimples impleSimples impleSimples impleSimplesSimples SimpleSimples SimpleSimples Simples Simples Simples Simples Simples Simples Simples Simples Simples Simples Simples Simples Simple KISS-prinsippet KISS-prinsippet KISS-prinsippet "hold ting enkelt" "hold ting enkelt" "hold ting enkelt" "hold ting enkelt""hold ting enklere""hold enklere""enkelt""enkelt""enkelt""enkelt""enkelt" ""enkelt"""enkelt"""enkelt"""enkelt"""Enkelt"""Enkelt"""Enkelt"""Enkelt e “””Enkelt “””Enklere “””Enklere “””Enklere “” Enklere “” Enklere “” Enklere “” Enklere “” Enkleste “” Enkleste “” Enkleste “” Enkleste

Hva er drf-endepunkt

Drf-endepunktet er en Django-applikasjon som gir et RESTful-grensesnitt til DREF (Django Rest Framework) API.

endepunkter

Et endepunkt er et spesifikt interaksjonspunkt med en nettjeneste. I Django er et endepunkt vanligvis representert av en URL. For eksempel kan endepunktet for Twitter API være http://api.twitter.com/1/statuses/update.

Når du oppretter en modell i Django, kan du spesifisere hvilke endepunkter modellen støtter. Modellen Twitter har for eksempel et endepunkt for å oppdatere Twitter-statusen din. Hvis du vil bruke Twitter API for å få de siste tweetene dine, vil du bruke endepunktet http://api.twitter.com/1/users/:brukernavn/.

Relaterte innlegg:

Legg igjen en kommentar