Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/jonatandb/task-crud-django-rest-framework-nextjs

Django Rest Framework + NextJS - Tasks CRUD
https://github.com/jonatandb/task-crud-django-rest-framework-nextjs

crud-api django django-rest-framework javascript jonatandb nextjs tasks-manager

Last synced: about 2 months ago
JSON representation

Django Rest Framework + NextJS - Tasks CRUD

Awesome Lists containing this project

README

        

# [Django Rest Framework + NextJS - Tasks CRUD](https://www.youtube.com/watch?v=2yvbLC9Fxkk)

Python backend, Javascript frontend.

---

![Tasks App Preview](Final_Result_Preview.gif)

---

## Installation

Install backend with pip:

```bash
cd backend
pip install -r requirements.txt
```

Install frontend with npm:

```bash
cd frontend
pnpm install
```

Rename file ```/frontend/.env.example``` to ```/frontend/.env```

## Usage

Start backend server:

```bash
cd backend
py manage.py runserver
```

Start frontend server:

```bash
cd frontend
npm run dev
```

## Visit NextJS frontend website:

- http://localhost:3000

## Visit Django REST framework backend website:

- http://127.0.0.1:8000
---

## [Django REST framework ViewSet](https://www.django-rest-framework.org/api-guide/viewsets/)

ViewSet es un concepto específico de Django REST framework
que implicitamente es un conjunto de vistas.

Cada vez que se crea una ruta a un recurso, utilizando su ViewSet, Django REST framework crea completamente el CRUD.

---

## [Django REST framework Actions](https://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routing)

Un _action_ es una ruta específica que se genera y configura para realizar una 'acción' específica diferente (mas compleja o completa) de lo que se hace con las rutas standard provistas por REST.

Se crea dentro de la clase ViewSet del recurso, es un método que tiene que tener el decorador _@action_, el cual entre otras cosas admite que se especifique los métodos HTTP por medio de los cuales se puede ejecutar esta _acción_, por ej. 'POST'.
Dentro, este método, posee la lógica para realizar con el recurso lo que sea necesario, por ej. _Pasar el valor de un campo booleano a otro estado._
Para utilizar/ejecutar este _action_, se debe hacer un POST a la ruta del recurso, poniendo en la URL el nombre del action creado, por ej. _'http://127.0.0.1:8000/api/tasks/1/done/'_. (_**La barra al final es obligatoria.**_)