| Author: Eduardo Enriquez

Django rest framework: tutorial - Parte I

django web framework django rest framework

Bueno vamos a ir de a poco intentando ver c贸mo usar django rest framework (http://www.django-rest-framework.org/). Ya lo hab铆a utilizado antes, pero luego de un tiempo sin usar tuve que volver a emparme las manos y aproveche para recopilar lo aprendido en este post (que espero que sea el inicio de un tutorial m谩s grande).

0. Creaci贸n de virtualenv

Primero creamos una carpeta para el proyecto, en este caso le puse website, pero podria llamarse como a vos te guste. Luego entramos a la carpeta y creamos el virtualenv adentro.

mkdir website
cd website

python3 -m venv myvenv

Esto va a crear una carpeta que se llama myvenv y adentro se van a instalar todas las dependencias python de mi proyecto. Para instalar dependencias dentro de un virtualenv, hay que activar el virtualenv y correr pip install sin sudo. Para activarlo podemos hacer:

source myvenv/bin/activate

Pero bueno exite una libreria que nos abstrae un poco de este laburo y que se usa muy a menudo, se llama virtualenvwrapper (virtualenvwrapper.readthedocs.io). Para que la lib funcione se tiene que agregar un comando en tu bashrc o si usas zsh + ohmyzsh hay un pluggin m谩gico que lo resuelve. Basicamente se crea una carpeta .virtualenvs en tu home y ahi adentro se crean todos tus virtualenvs. Adem谩s tene un par de comandos: mkvirtualenv, rmvirtualenv y workon. Este 煤ltimo es para activar o cambiar el virtualenv en el cual queremos trabajar.

mkdir website
cd website
mkvirtualenv website

1. Instalaci贸n:

El primer paso es instalar todas nuestras dependencias (dentro del virtualenv). Vamos a iniciar un proyecto en django desde cero as铆 que vamos a indicar instalar django y django-rest-framework (y dos librerias m谩s opcionales)

pip install django djangorestframework
pip install markdown       # Markdown support for the browsable API.
pip install django-filter  # Filtering support

2.聽 Creaci贸n de un proyecto django:

Para empezar un proyecto en django se necesita crear un proyecto y crear apps. Quiz谩s esto es engorroso porque antes de arrancar tenemos que preocuparnos por crear toda la jerarquia que django nos propone, pero bueno no son muchos pasos y tiene la ventaja de que permite crear un proyecto organizado y con apps independientes y portables hacia otros proyectos.

Asi que lo primero es crear el proyecto:

django-admin startproject website

Vale la aclaraci贸n de nuevo que uso website pero podr铆a llamarse como a nosotros m谩s nos guste.

Esto va a generar una estructura de carpetas similar a la siguiente:

website
鈹溾攢鈹鈹manage.py
鈹斺攢鈹鈹website
        settings.py
        urls.py
        wsgi.py
        __init__.py

Aqu铆 observamos una carpeta base que se llama website y adentro un manage.py. Dentro de esta carpeta base ten茅mos nuestras carpeta de proyecto django (que tambi茅n le pusimos website). Dentro de ella tenemos un archivo de configuraci贸n, un archivo que se va a encargar de manejar las distintas urls que nuestro sitio va a manejar y un archivo wsgi para la configuraci贸n en producci贸n del proyecto.

El archivo de configuraci贸n (settings.py) es muy importante porque es el encargado de manejar muchas cosas de nuestro proyecto: desde la conexi贸n con la base de datos hasta con que apps va a tener nuestro proyecto y configuraci贸n de pluggins.

Les recomiendo que se peguen una vuelta por el tutorial oficial de django: https://docs.djangoproject.com/es/1.11/intro/tutorial02/ por la documentaci贸n oficial del archivo https://docs.djangoproject.com/en/1.11/ref/settings/ o por el tutorial de django girls que est谩 buenisimo: https://tutorial.djangogirls.org/es/django_start_project/#cambiando-la-configuraci贸n.

3. Creaci贸n de una app en django:

El manage.py va a ser uno de esos comandos que si nos enganchamos con django no vamos a dejar de usar. Con el nos vamos a valer para crear una app:

python manage.py startapp api

Esto crea una carpeta con archivos dentro de nuestro directorio de proyecto (obviamente tenemos que estar parados adentro de 茅l) entonces otra estructura de carpetas como la siguiente:

website
鈹溾攢鈹 website
|       __init__.py
|       settings.py
|       urls.py
|       wsgi.py
鈹溾攢鈹 manage.py
鈹斺攢鈹 api
    鈹溾攢鈹 migrations
    |       __init__.py
    鈹溾攢鈹 __init__.py
    鈹溾攢鈹 admin.py
    鈹溾攢鈹 models.py
    鈹溾攢鈹 tests.py
    鈹斺攢鈹 views.py

Le puse api a esta app porque como vamos a usar django-rest-framework para crear una api rest con django, creo que un buen nombre es api, pero puede llamarse de cualquier manera.

4. Configuraci贸n general:

Una vez que creamos nuestra app o, del mismo modo, cuando instalamos alg煤n pluggin de django es necesario agregarlo a nuestras installed_apps para que este incorporado no solo fisicamente al proyecto, sino l贸gicamente (quiero decir que podemos tener apps o pluggins que podemos activar y desactivar agregandolos o quitandolos de aqu铆):
INSTALLED_APPS = (
    ...
    'api',
    'rest_framework',
)

Continuamos en la segunda parte:

Django rest framework tutorial ii

Related Posts