diff --git a/_images/django-rest.png b/_images/django-rest.png new file mode 100644 index 0000000..73de34f Binary files /dev/null and b/_images/django-rest.png differ diff --git a/django-rest.html b/django-rest.html new file mode 100644 index 0000000..5a1fd87 --- /dev/null +++ b/django-rest.html @@ -0,0 +1,262 @@ + + + + + + + Entendendo DJANGO + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+
+

Entendendo Django REST Framework

+
+ +
+
+

Review Django

+ +
    +
  • Request de um browser chega no Django;
  • +
  • Consulta o urls.py base do projeto para encontrar o + que será executado;
  • +
  • Consulta o urls.py da app (no caso) para encontrar + a view que será executada;
  • +
  • Encontra a view dentro da app, que busca as informações no model;
  • +
  • Renderiza o template;
  • +
  • Retorna o template renderizado para o usuário.
  • +
+
+
+ +
+
+

Interlúdio: REST

+ + +
+ +
+

REST: Recursos

+ +

Elementos são chamados "recursos" e fazem parte da URL.

+ +
    +
  • Recurso usuários: /user;
  • +
  • Recurso orders: /order;
  • +
  • Recurso produtos: /product
  • +
+
+ +
+

REST: Recursos

+ +

Recursos específicos são indicados também na URL depois + da URL base do recurso, apontados por sua chave principal.

+ +
    +
  • Usuário 1: /user/1/
  • +
  • Produto ws-1243: /product/ws-1243/
  • +
+
+ +
+

REST: Recursos

+ +

Recursos podem estar aninhados.

+ +
    +
  • /user/1/order: Todos os pedidos do usuário 1.
  • +
  • /user/1/order/2: Pedido 2 do usuário 1.
  • +
+
+ +
+

REST: Verbos/Ações

+ +

Ações sobre os recursos são indicadas pelo verbo HTTP:

+ +
    +
  • GET: Recupera recursos;
  • +
  • POST: Cria recursos;
  • +
  • PUT: Altera (update) recursos;
  • +
  • DELETE: Apaga recursos;
  • +
  • PATCH: Altera recursos.
  • +
+
+ +
+

REST: Verbos

+ + + + + + + + + + + + + +
 Base recursoRecurso específico
GETTodos os elementos do recursoDados do recurso específico
+
+ +
+

REST: Verbos

+ + + + + + + + + + + + + +
 Base recursoRecurso específico
POSTCria um recurso novoNão usado, mas poderia criar um recurso com a cahve indicada
+
+ +
+

REST: Verbos

+ + + + + + + + + + + + +
 Base recursoRecurso específico
PUTNão usadoAtaliza o registro inteiro do recurso
+
+ +
+

REST: Verbos

+ + + + + + + + + + + + + +
 Base recursoRecurso específico
DELETENão usado, mas poderia apagar todos os recursosApaga o recurso
+
+ +
+

REST: Verbos

+ + + + + + + + + + + + + +
 Base recursoRecurso específico
PATCHNão usadoAtualiza campos específicos do recurso
+
+ +
+

REST: Exemplos

+ +
    +
  • GET /user: Retorna todos os usuários do sistema.
  • +
  • POST /order: Cria um novo pedido.
  • +
  • DELETE /user/1/order/2: Apaga o pedido 2 do usuário 1.
  • +
+
+
+ +
+
+

De volta ao REST Framework

+ + +
+
+
+
+ + + + + + + + diff --git a/django.html b/django.html index 19dde38..8a7bfc5 100644 --- a/django.html +++ b/django.html @@ -54,7 +54,7 @@

"Projeto" é como Django chama a base do sistema.

-

Criado com django-admin startproject [PROJECT].

+

Criado com django-admin startproject [PROJECTNAME] ..

@@ -69,10 +69,6 @@ │   └── wsgi.py └── manage.py - -

- manage.py vira o gerenciador do projeto. -

@@ -83,11 +79,12 @@

Dentro do projeto, para criar um app: -

+

-

- python manage.py startapp [app] -

+

+cd exemplo
+django-admin startapp [app]
+						
@@ -97,23 +94,23 @@

-    .
-    ├── exemplo
-    │   ├── __init__.py
-    │   ├── __init__.pyc
-    │   ├── settings.py
-    │   ├── settings.pyc
-    │   ├── urls.py
-    │   └── wsgi.py
-    ├── manage.py
-    └── products
-        ├── admin.py
-        ├── __init__.py
-        ├── migrations
-        │   └── __init__.py
-        ├── models.py
-        ├── tests.py
-        └── views.py
+
+.
+├── manage.py
+└── exemplo
+    ├── __init__.py
+    ├── products
+    │   ├── admin.py
+    │   ├── apps.py
+    │   ├── __init__.py
+    │   ├── migrations
+    │   │   └── __init__.py
+    │   ├── models.py
+    │   ├── tests.py
+    │   └── views.py
+    ├── settings.py
+    ├── urls.py
+    └── wsgi.py
                         
diff --git a/index.html b/index.html index 7e925ee..edd0d9d 100644 --- a/index.html +++ b/index.html @@ -104,6 +104,11 @@ ul.inline-list li {
Ententendo Django + +
  • +
    + Django REST Framework +