Respite on sovellus, joka täyttää Django on REST (REST).
Käyttö
Pohjamaali
Respite vaikuttavat Ruby on Rails, vaikka henki Python se ei ole läheskään niin "maaginen". Se kuitenkin säästää paljon koodia:
# Uutiset / models.py
alkaen django.db tuonti mallit
luokan artikla (models.Model):
& Nbsp; title = models.CharField (MAX_LENGTH = 255)
& Nbsp; content = models.TextField ()
& Nbsp; julkaistu = True
& Nbsp; created_at = models.DateTimeField (auto_now_add = True)
# Uutiset / urls.py
alkaen django.conf.urls.defaults tuoda *
alkaen respite.urls tuonti resurssi
näkymistä tuonti ArticleView
urlpatterns = resurssi (
& Nbsp; etuliite = "news / artikkelit",
& Nbsp; näkymä = ArticleView
)
# Uutiset / views.py
alkaen hengähdystauko tuonti View
malleista tuonti artikla
luokan ArticleView (View):
& Nbsp; malli = artikla
& Nbsp; template_path = "news / artikkelit"
& Nbsp; supported_formats = ['html', 'JSON "]
# Malleja / uutiset / artikkelit / index.html
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp; {% tuotteelle esineissä%}
& Nbsp;
& Nbsp;
{{article.title}} >
& Nbsp;
& Nbsp;
& Nbsp; {{article.content}}
& Nbsp;
& Nbsp;
& Nbsp; {% EndFor%}
& Nbsp;
# Malleja / uutiset / artikkelit / index.json
# ...
Oletus toimet
Respite View luokka määrittelee toimet katseluun ja manipuloida mallia tapauksissa; indeksi, show, uusi, luoda, muokata ja sbquo; päivittää ja tuhota.
HTTP menetelmä HTTP polku funktio Tarkoitus
GET artikkelit / index Render luettelo artikkeleista
GET artikkelit / uusi uusi Render muodossa luoda uusi artikkeli
POST artikkelit / Luo Luo uusi artikkeli
GET artikkelit / 1 Näytä Render erityinen artikla
GET artikkelit / 1 / muokkaa muokkaa Render lomake muokata tiettyä tavaraa
PUT artikkelit / 1 päivitys Edit erityinen artikla
DELETE artikkelit / 1 tuhota poistaa tietyn artikkeli
Pähkinänkuoressa Respite tarjoaa sinulle kokoelma ominaisuuksia tarvitset todennäköisesti useimpien omia malleja ja reitit niitä restfully. Voit ohittaa minkä tahansa tai kaikki nämä toiminnot ja muokata niitä kuin haluat. Esimerkiksi voisit vain luetella artikkeleita, jotka on julkaistu:
# Uutiset / views.py
luokan ArticleView (View):
& Nbsp; malli = artikla
& Nbsp; template_path = "news / artikkelit"
& Nbsp; supported_formats = ['html', 'JSON "]
& Nbsp; def indeksi (itse, tarvittaessa):
& Nbsp; artikkeleita = self.model.objects.filter (julkaistu = True)
& Nbsp; paluu self._render (
& Nbsp; pyynnön = pyynnöstä
& Nbsp; template = "indeksi",
& Nbsp; context = {
& Nbsp; artikkelit ": esineet,
& Nbsp;}
& Nbsp; tila = 200
& Nbsp;)
Voi myös jättää pois yhden tai useamman oletuksena toimia kokonaan. Esimerkiksi voisit vain toteuttaa indeksi ja osoittavat toimet:
# Uutiset / urls.py
alkaen django.conf.urls.defaults tuoda *
alkaen respite.urls tuonti resurssi
näkymistä tuonti ArticleView
urlpatterns = resurssi (
& Nbsp; etuliite = "news / artikkelit",
& Nbsp; mielestä = ArticleView,
& Nbsp; toimien = ['indeksi', 'show']
)
Custom toimet
Et ole rajoitettu Respite seitsemän ennalta toimia; Voit lisätä rajattoman määrän mukautettuja toimia ja reitittää ne kuitenkin haluat:
# Uutiset / urls.py
alkaen django.conf.urls.defaults tuoda *
alkaen respite.urls tuoda resurssi, toiminta
näkymistä tuonti ArticleView
urlpatterns = resurssi (
& Nbsp; etuliite = "news / artikkelit",
& Nbsp; mielestä = ArticleView,
& Nbsp; custom_actions = [
& Nbsp; toiminta (
& Nbsp; lausekeryhmän = r '(? P [0-9] +) / esikatselu .? [AZ az] * $',
& Nbsp; toiminto = 'esikatselu',
& Nbsp; menetelmät = ['GET'],
& Nbsp; name = "preview_news_article '
& Nbsp;)
& Nbsp;]
)
# Uutiset / views.py
alkaen hengähdystauko tuonti View
malleista tuonti artikla
luokan ArticleView (View):
& Nbsp; malli = artikla
& Nbsp; template_path = "news / artikkelit"
& Nbsp; supported_formats = ['html', 'JSON "]
& Nbsp; def esikatselu (itse, pyyntö, id):
& Nbsp; artikkeli = Article.objects.get (id = id)
& Nbsp; paluu self._render (
& Nbsp; pyynnön = pyynnöstä
& Nbsp; template = "esikatselu",
& Nbsp; context = {
& Nbsp; "artikkeli": artikkeli
& Nbsp;}
& Nbsp; tila = 200
& Nbsp;)
Asennus
- PIP asentaa Git + http: //github.com/jgorset/respite.git
- Lisää hengähdystaukoa INSTALLED_APPS oman asetustiedostoon
- Lisää respite.middleware.HTTPPUTMiddleware ja MIDDLEWARE_CLASSES oman asetustiedostoon
Jos et ole vain rakennus API, saatat haluta lisätä respite.middleware.HTTPMethodOverrideMiddleware teidän middleware luokkiin; se helpottaa ohittaa HTTP menetelmää X-HTTP-menetelmä-ohitus otsikon tai _method HTTP POST parametri, joka on ainoa tapa päivittää (HTTP PUT) ja poista (HTTP DELETE) resurssit verkkoselaimella.
Vaatimukset :
- Python
- Django
Kommentteja ei löytynyt