Respite é um aplicativo que está em conformidade Django para Representational State Transfer (REST).
Uso
Cartilha
Folga é influenciada por Ruby on Rails, embora no espírito de Python não é quase como "mágica". Será, no entanto, poupar-lhe um monte de código:
# News / models.py
a partir de modelos de importação django.db
classe artigo (models.Model):
& Nbsp; title = models.CharField (max_length = 255)
& Nbsp; content = models.TextField ()
& Nbsp; publicada = True
& Nbsp; created_at = models.DateTimeField (auto_now_add = True)
# News / urls.py
de django.conf.urls.defaults importar *
de recurso de importação respite.urls
a partir de pontos de vista de importação ArticleView
urlpatterns = recurso (
& Nbsp; prefix = "news / artigos ',
& Nbsp; view = ArticleView
)
# News / views.py
de trégua importação Vista
a partir de modelos de importação Artigo
ArticleView classe (View):
& Nbsp; model = artigo
& Nbsp; template_path = 'news / artigos'
& nbsp; supported_formats = ['html', 'json']
# templates / notícias / artigos / index.html
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp; {% for artigo em artigos%}
& Nbsp;
& Nbsp;
{{article.title}}
& Nbsp;
& Nbsp; {% endfor%}
& Nbsp;
# templates / notícias / artigos / index.json
# ...
Ações padrão
Ver classe de Respite define ações para visualização e manipulação de instâncias do modelo; índice, show, novo, criar, editar e sbquo; atualizar e destruir.
HTTP método HTTP Função caminho Purpose
Começar artigos / index rendem uma lista de artigos
Começar artigos / novas novo rendem um formulário para criar um novo artigo
Artigos Post / Criar Criar um novo artigo
Começar artigos / 1 mostram rendem um artigo específico
Começar artigos / 1 / editar rendem um formulário para editar um artigo específico
Artigos PUT / 1 atualização editar um artigo específico
Eliminar artigos / 1 destruir Excluir um artigo específico
Em poucas palavras, Respite fornece-lhe com uma coleção de recursos que você provavelmente precisa para a maioria de seus modelos e as encaminha tranqüilamente. Você pode substituir qualquer uma ou todas essas funções e personalizá-los como você gostaria. Por exemplo, você só poderia listar artigos que foram publicados:
# News / views.py
ArticleView classe (View):
& Nbsp; model = artigo
& Nbsp; template_path = 'news / artigos'
& nbsp; supported_formats = ['html', 'json']
& Nbsp; def index (self, request):
& Nbsp; artigos = self.model.objects.filter (publicado = True)
& Nbsp; retorno self._render (
& Nbsp; request = pedido,
& Nbsp; 'index' template =,
& Nbsp; context = {
& nbsp; "artigos": artigos,
& Nbsp;},
& Nbsp; status = 200
& Nbsp;)
Você também pode omitir uma ou várias das ações padrão completamente. Por exemplo, você só poderia implementar as ações indexar e exibir:
# News / urls.py
de django.conf.urls.defaults importar *
de recurso de importação respite.urls
a partir de pontos de vista de importação ArticleView
urlpatterns = recurso (
& Nbsp; prefix = "news / artigos ',
& Nbsp; view = ArticleView,
& Nbsp; acções = ['index', 'show']
)
As ações personalizadas
Você não está limitado a sete ações predefinidas de Folga; você pode adicionar qualquer número de ações personalizadas e encaminhá-los da maneira que quiser:
# News / urls.py
de django.conf.urls.defaults importar *
de respite.urls importar recurso, ação
a partir de pontos de vista de importação ArticleView
urlpatterns = recurso (
& Nbsp; prefix = "news / artigos ',
& Nbsp; view = ArticleView,
& nbsp; custom_actions = [
& Nbsp; acção (
& Nbsp; regex = r '(? P [0-9] +).? / Preview [a-zA-Z] * $',
& Nbsp; função = 'preview',
& Nbsp; métodos = ['GET'],
& Nbsp; name = 'preview_news_article'
& Nbsp;)
& Nbsp;]
)
# News / views.py
de trégua importação Vista
a partir de modelos de importação Artigo
ArticleView classe (View):
& Nbsp; model = artigo
& Nbsp; template_path = 'news / artigos'
& nbsp; supported_formats = ['html', 'json']
& Nbsp; visualização def (self, pedido, id):
& Nbsp; article = Article.objects.get (id = id)
& Nbsp; retorno self._render (
& Nbsp; request = pedido,
& Nbsp; template = 'preview',
& Nbsp; context = {
& Nbsp; "artigo": artigo
& Nbsp;},
& Nbsp; status = 200
& Nbsp;)
Instalação
- Pip instalar git + http: //github.com/jgorset/respite.git
- Adicionar pausa para INSTALLED_APPS no seu arquivo de configurações
- Adicionar respite.middleware.HTTPPUTMiddleware para MIDDLEWARE_CLASSES em seu arquivo de configurações
Se você não está apenas a construção de uma API, você também pode querer adicionar respite.middleware.HTTPMethodOverrideMiddleware às suas aulas de middleware; facilita para substituir o método HTTP com o cabeçalho X-HTTP-Method-Override ou um parâmetro POST HTTP _method, que é a única forma de atualizar (PUT HTTP) e apagar (HTTP DELETE) recursos de um navegador web.
Requisitos :
- Python
- Django
Comentários não encontrado