Respitní je aplikace, která odpovídá Django k Representational State Transfer (REST). Použít Primer Respitní je ovlivněna tím, Ruby on Rails, ale v duchu Python to není zdaleka tak "magie". To se však ušetří spoustu kódu: # News / models.py od django.db modelů dovozních třída článku (models.Model): & Nbsp; title = models.CharField (MAX_LENGTH = 255) & Nbsp; obsah = models.TextField () & Nbsp; zveřejněna = True & Nbsp; created_at = models.DateTimeField (auto_now_add = True) # News / urls.py od django.conf.urls.defaults import * od respite.urls dovozu zdrojů z výhledem na dovozu ArticleView urlpatterns = zdroj ( & Nbsp; prefix = 'news / články ", & Nbsp; view = ArticleView ) # News / views.py z odlehčovací dovozu View z modelů dovozu článku třída ArticleView (View): & Nbsp; modelu = článek & Nbsp; template_path = 'news / články " & nbsp; supported_formats = ['html', 'json'] # templates / news / články / index.html & Nbsp;
& Nbsp;
{{}} article.title & Nbsp;
& Nbsp;
& Nbsp; {% na článek v články%}
& Nbsp;
& Nbsp; & Nbsp; {{}} article.created_at & Nbsp; & Nbsp; {{}} article.content & Nbsp;
& Nbsp; článek> & Nbsp; {% endfor%} & Nbsp; # templates / news / články / index.json # ... Výchozí akce Respitní je pohled třída definuje akcí pro prohlížení a manipulaci s instancí modelu; index, show, nové, vytvářet, upravovat & sbquo; aktualizovat a zničit. HTTP metoda HTTP cesta Funkce Účel GET články / index Render seznam článků GET články / Nový Nový Render formulář pro vytvoření nové článek POST články / Vytvořit Vytvořit nový článek GET články / 1 přehlídka Render zvláštní článek GET výrobky / 1 / editovat editovat Render formulář upravit zvláštní článek PUT články / 1 aktualizace Upravit zvláštní článek DELETE články / 1 zničit Odstranění konkrétní článek Stručně řečeno, Respitní vám nabízí kolekci funkcí, pravděpodobně budete muset pro většinu z vašich modelů a tras jim odpočinkově. Můžete přepsat některé nebo všechny z těchto funkcí a přizpůsobit je, jak byste chtěli. Například, můžete vypsat jen články, které byly publikovány: # News / views.py třída ArticleView (View): & Nbsp; modelu = článek & Nbsp; template_path = 'news / články " & nbsp; supported_formats = ['html', 'json'] & Nbsp; def index (self, dotaz): & Nbsp; články = self.model.objects.filter (zveřejněno = True) & Nbsp; návrat self._render ( & Nbsp; request = požadavek, & Nbsp; vzoru = "index", & Nbsp; context = { & nbsp; "výrobky": výrobky, & Nbsp;} & Nbsp; status = 200 & Nbsp;) Můžete také vynechat jednu nebo více z výchozích akcí dohromady. Například, můžete jen implementovat index a zobrazit akce: # News / urls.py od django.conf.urls.defaults import * od respite.urls dovozu zdrojů z výhledem na dovozu ArticleView urlpatterns = zdroj ( & Nbsp; prefix = 'news / články ", & Nbsp; view = ArticleView, & Nbsp; akce = ['index', 'show'] ) Vlastní akce Ty nejsou omezeny na oddech sedmi předem definovaných činností; můžete přidat libovolný počet vlastních akcí a cestu jim však se vám líbí: # News / urls.py od django.conf.urls.defaults import * od respite.urls import zdroj, akce z výhledem na dovozu ArticleView urlpatterns = zdroj ( & Nbsp; prefix = 'news / články ", & Nbsp; view = ArticleView, & nbsp; custom_actions = [ & Nbsp; akce ( & Nbsp; regex = r '(? P [0-9] +).? / Preview [a-zA-Z] * $ ", & Nbsp; funkce = 'Náhled', & Nbsp; metody = ['GET'], & Nbsp; name = 'preview_news_article' & Nbsp;) & Nbsp;] ) # News / views.py z odlehčovací dovozu View z modelů dovozu článku třída ArticleView (View): & Nbsp; modelu = článek & Nbsp; template_path = 'news / články " & nbsp; supported_formats = ['html', 'json'] & Nbsp; def preview (self, dotaz, id): & Nbsp; article = Article.objects.get (id = id) & Nbsp; návrat self._render ( & Nbsp; request = požadavek, & Nbsp; template = 'Náhled', & Nbsp; context = { & Nbsp; "článek": článek & Nbsp;} & Nbsp; status = 200 & Nbsp;) Instalace - Pip instalace git + http: //github.com/jgorset/respite.git - Přidat odklad do INSTALLED_APPS v souboru nastavení - Přidat respite.middleware.HTTPPUTMiddleware do MIDDLEWARE_CLASSES v souboru nastavení Pokud jste nejen budování API, můžete také chtít přidat respite.middleware.HTTPMethodOverrideMiddleware do middleware tříd; usnadňuje pro přepsání metody HTTP s hlavičkou X-HTTP-metoda-přepsat, nebo parametr _method HTTP POST, což je jediný způsob, jak aktualizovat (HTTP PUT) a smazat (HTTP DELETE) prostředky z webového prohlížeče. Požadavky na :
15 Apr 15
Komentáře nebyl nalezen