Почивна е приложение, което отговаря Django да представителни членка Transfer (REST).
<Силен> Usage
Грунд
Почивна се влияе от Руби на релси, въпреки че в духа на Python тя не е толкова "магия". Това, обаче, ще ви спести много код:
# Новини / models.py
от django.db модели внос
Клас член (models.Model):
& Nbsp; заглавие = models.CharField (MAX_LENGTH = 255)
& Nbsp; съдържание = models.TextField ()
& Nbsp; публикувана = True
& Nbsp; created_at = models.DateTimeField (auto_now_add = True)
# Новини / urls.py
от django.conf.urls.defaults импортирате *
от respite.urls внос на ресурси
от възгледи внос ArticleView
urlpatterns = ресурс (
& Nbsp; префикс = "Новини / изделия",
& Nbsp; изглед = ArticleView
)
# Новини / views.py
от почивка внос View
от модели внос член
клас ArticleView (View):
& Nbsp; модел = член
& Nbsp; template_path = "Новини / изделия"
& Nbsp; supported_formats = ['HTML "," JSON "]
# шаблони / новини / статии / index.html
& Nbsp; <главата>
& Nbsp; <заглавие> {{}} article.title заглавие>
& Nbsp; глава>
& Nbsp; <тялото>
& Nbsp; {% за член в статии%}
& Nbsp;
& Nbsp; <един HREF = "{% URL news_article ID = article.id%}"> {{}} article.title
& Nbsp; <време DateTime = "{{}} article.created_at.isoformat"> {{}} article.created_at
& Nbsp;
& Nbsp; {{article.content}}
& Nbsp;
& Nbsp;
& Nbsp; {% endfor%}
& Nbsp; тялото>
# шаблони / новини / статии / index.json
# ...
Действия по подразбиране
Почивна на View клас определя действия за разглеждане и манипулиране на моделни случаи; индекс, шоу, нов, създавате, редактирате и sbquo; актуализира и да унищожи.
HTTP метод HTTP път Функция Предназначение
ВЗЕМИ изделия / индекс Render списък с артикули
ВЗЕМИ изделия / нови нова Render форма, за да създадете нова статия
POST изделия / създават създаване на нов член
ВЗЕМИ изделия / 1 шоу Render определен артикул
ВЗЕМИ изделия / 1 / редактирам Render форма, за да редактирате определен артикул
Сложете изделия / 1 актуализация Редактиране на определен артикул
DELETE изделия / 1 унищожат изтриване на конкретна статия
С две думи, отдих ви предлага колекция от функции, които може би се нуждаят от по-голямата част от моделите си и ги маршрути RESTfully. Можете да замените някои или всички от тези функции и да ги персонализирате, колкото искате. Например, бихте могли да се изброят само статии, които са публикувани:
# Новини / views.py
клас ArticleView (View):
& Nbsp; модел = член
& Nbsp; template_path = "Новини / изделия"
& Nbsp; supported_formats = ['HTML "," JSON "]
& Nbsp; Def индекс (самостоятелно, молба):
& Nbsp; изделия = self.model.objects.filter (публикувана = True)
& Nbsp; връщане self._render (
& Nbsp; поискване = поискване
& Nbsp; "индекс" шаблонни =,
& Nbsp; контекст = {
& Nbsp; "предмети": статии,
& Nbsp;},
& Nbsp; статус = 200
& Nbsp;)
Вие също може да пропусне една или няколко от дейностите по подразбиране напълно. Например, вие може да се въведе само индекси и покажи действия:
# Новини / urls.py
от django.conf.urls.defaults импортирате *
от respite.urls внос на ресурси
от възгледи внос ArticleView
urlpatterns = ресурс (
& Nbsp; префикс = "Новини / изделия",
& Nbsp; изглед = ArticleView,
& Nbsp; действия = ['индекс "," шоу "]
)
Потребителски действия
Вие не се ограничават до седем предварително определени действия отсрочка на; можете да добавите неограничен брой потребителски действия и да ги насочват обаче ви харесва:
# Новини / urls.py
от django.conf.urls.defaults импортирате *
от respite.urls внасят ресурс, действия
от възгледи внос ArticleView
urlpatterns = ресурс (
& Nbsp; префикс = "Новини / изделия",
& Nbsp; изглед = ArticleView,
& Nbsp; custom_actions = [
& Nbsp; действия (
& Nbsp; Регулярен = R "(? P [0-9] +).? / Визуализация [A-Za-Z] * $",
& Nbsp; функция = "Визуализация",
& Nbsp; методи = ['Get'],
& Nbsp; име = "preview_news_article"
& Nbsp;)
& Nbsp;]
)
# Новини / views.py
от почивка внос View
от модели внос член
клас ArticleView (View):
& Nbsp; модел = член
& Nbsp; template_path = "Новини / изделия"
& Nbsp; supported_formats = ['HTML "," JSON "]
& Nbsp; Def Визуализация (самостоятелно, искане, ID):
& Nbsp; статия = Article.objects.get (ID = ID)
& Nbsp; връщане self._render (
& Nbsp; поискване = поискване
& Nbsp; шаблон = "Визуализация",
& Nbsp; контекст = {
& Nbsp; "изделие": статия
& Nbsp;},
& Nbsp; статус = 200
& Nbsp;)
<Силен> Монтаж
- Пип инсталирате Git + HTTP: //github.com/jgorset/respite.git
- Добавяне на почивка да INSTALLED_APPS във файла с настройки
- Добави respite.middleware.HTTPPUTMiddleware да MIDDLEWARE_CLASSES във файла с настройки
Ако не сте просто изграждане на API, може да искате да добавите respite.middleware.HTTPMethodOverrideMiddleware да си мидълуер класове; то улеснява за незачитане на метода на HTTP с хедър X-HTTP-Метод-Override или POST параметър _method HTTP, което е единственият начин да се актуализира (HTTP PUT) и изтриване (HTTP Изтриване) ресурси от уеб браузър.
<силни> Изисквания :
- Python
- Django
Коментари не е намерена