Está en la página 1de 3

Django rest

Crear proyecto:
Django-admin startproject {proyecto}
Python manage.py startapp {nombreapi}

Habilitar la aplicacion en los settings del proyecto:


Ir a settings.py de nuestro proyecto y en “installed_apps” debemos poner el
nombre de nuestra app, también agregar el framework rest : 'rest_framework',
'rest_framework.authtoken',

Migrar la app para usarla:


python manage.py migrate

Run la app:
Python manage.py runserver

VISTAS:
Mvc = modelo Vista Controlador (recibe peticiones, request, devuelve cosas a la vista).
Hay acciones, o métodos. Se le llama “vista”
MVT = Modelo Vista Template, es lo mismo que el controlador, pero se le llama
“template”

¿DONDE CONFIGURO LAS URL?


En el paquete principal del proyecto, en “urls.py” puedo agregar rutas dentro de
url_patterns

División del proyecto:


- Views
Aquí se determinan las funciones y operaciones que hará nuestra página. Sería
QUÉ contenido tiene nuestra app.

- URLS
Aquí se determina qué funciones de las views irán a parar a qué URL en específico.
Sería DÓNDE irá ese contenido.
Parámetros en las rutas:
Para hacer métodos que tomen parámetros de las rutas hay que hacer dos cosas:
1) En URLS.py agregar el path en cuestión seguido del parámetro, por ejemplo:
path('unapagina/<str:nombre>',views.unmetodo,name=unnombre)

2) En VIEWS.PY agregar un método que se utilice en esa url y que reciba como
parámetro al parámetro que establecimos en el path. Por ejemplo:
def unmetodo(request,nombre):

Es importante que tanto el parámetro del path en urls.py como el parámetro que
toma el método en views.py, debe llamarse exactamente igual.

Parámetros opcionales:
1) En URLS.py agregar el path en cuestión seguido de todos los parámetros que
pueda o no tomar el método, por ejemplo:
path('unapagina/<str:nombre>',views.unmetodo,name=unnombre)
path('unapagina/',views.unmetodo,name=unnombre)

2) En VIEWS.PY agregar un método que se utilice en esa url y que reciba como
parámetro OPCIONAL al parámetro que establecimos en el path. Por ejemplo:
def unmetodo(request,nombre=None):

TEMPLATES
Dentro de la carpeta de miapp, añadiremos una carpeta llamada “templates” y allí
crearemos un fichero .html (index.html).
Las templates sirven para tener formatos html y luego mergearlos con las views (o vistas)
que son los trozos de código que le dan funcionalidad a mi app. En vez de en las vistas
poner el html, el mismo lo pongo en un fichero .html que luego llamaré en las vistas, con
el método render(). El método render() es un método de Python que permite llamar a
templates previamente definidas.

Vale aclarar que para que esto funcione bien, nuestra app debe estar dentro de las
INSTALLED_APPS de los settings así Django puede saber de su existencia.

SERIALIZER
https://www.django-rest-framework.org/api-guide/serializers/
Los serializadores permiten convertir datos complejos, como conjuntos de consultas e
instancias de modelos, en tipos de datos nativos de Python que luego se pueden
representar fácilmente en JSON, XML u otros tipos de contenido. Los serializadores
también brindan deserialización, lo que permite que los datos analizados se vuelvan a
convertir en tipos complejos, después de validar primero los datos entrantes.

Los serializadores en el marco REST funcionan de manera muy similar a las clases Form y
ModelForm de Django. Proporcionamos una clase Serializer que le brinda una forma
poderosa y genérica de controlar la salida de sus respuestas, así como una clase
ModelSerializer que proporciona un atajo útil para crear serializadores que se ocupan de
instancias de modelos y conjuntos de consultas.

MIGRATE
python manage.py migrate: Run the migrations (execute the SQL commands)." Vendria a
ser la forma que tiene django de "parsear" python a SQL, en este caso para crear o
modificar tablas (las tablas en postgresql vendrian a ser nuestros modelos en Django)

También podría gustarte