-
Notifications
You must be signed in to change notification settings - Fork 461
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add first steps for starting with Fleet Management API (#1815)
* Add first steps for starting with project * Hide django * mdlint rules fixes * Update projects/05-fleet-management-api/README.md --------- Co-authored-by: Ivy Feraco <[email protected]> Co-authored-by: Ivy Feraco <[email protected]>
- Loading branch information
1 parent
9b671bb
commit c0d6da6
Showing
5 changed files
with
287 additions
and
189 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
77 changes: 77 additions & 0 deletions
77
projects/05-fleet-management-api/docs/stack-python-django.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,77 @@ | ||
# Fleet Management Software API en Python y Django | ||
|
||
Django es un framework web que fomenta el desarrollo rápido y limpio de | ||
aplicaciones web, el cual es pensado para fomentar la escalabilidad en | ||
el desarrollo. | ||
|
||
Entre las características más importantes es que Django trabaja con su propio | ||
[ORM (Object Relational Mapper)](https://es.wikipedia.org/wiki/Mapeo_relacional_de_objetos) | ||
para facilitar la interacción con la base de datos. | ||
|
||
Django es una excelente opción para desarrollar aplicaciones web complejas | ||
que requieren una amplia variedad de funcionalidades integradas, | ||
una arquitectura MVT (Model View Template) sólida y | ||
una gran comunidad de apoyo. | ||
|
||
* [Django](https://www.djangoproject.com): | ||
como framework para implementar un servidor HTTP. | ||
* [Django REST Framework](https://www.django-rest-framework.org): como biblioteca | ||
complementaria para crear APIs web RESTful. | ||
* [Postgresql](https://www.postgresql.org/): como base de datos. | ||
|
||
## Pistas para trabajar con Django | ||
|
||
### Tus primeras instalaciones | ||
|
||
Para trabajar con Django puedes usar entornos virtuales | ||
en el siguiente [video](https://youtu.be/T2CZ7bltuMs) puedes guiarte para crear | ||
un entorno virtual, también hemos preparado un [video](https://youtu.be/YoKjtqxAXXw) | ||
que ejemplifica la forma en como inicializar un proyecto con Django. | ||
|
||
### Cargar la información a la base de datos | ||
|
||
Una vez tengas acceso a una instancia | ||
de PostgreSQL, la [historia de usuaria 1](../README.md#historia-de-usuario-1-cargar-información-a-base-de-datos) | ||
nos habla de crear las tablas para cargar la información. | ||
Uno de los caminos que te sugerimos es: | ||
|
||
1. Crear los modelos | ||
2. Después, generar las migraciones (usando el ORM de Django) | ||
3. Cargar la información a tu base de datos | ||
|
||
Para eso recomendamos primero tener una sola "app" para controlar todo lo | ||
relacionado a la administración de taxis y dentro de la app crear dos modelos, | ||
uno para almacenar la información de taxis (`taxis`) y otro para almacenar la | ||
información de ubicaciones (`trajectories`). | ||
|
||
Deberás definir los campos de cada modelo de acuerdo a la información entregada. | ||
Al momento de querer cargar la información es necesario que modifiques el script | ||
para especificar en que app trabajaran las 2 tablas hemos preparado el siguiente. | ||
|
||
Ejemplo de la modificación: | ||
|
||
```SQL | ||
-- Así se visualiza originalmente una linea en el script | ||
INSERT INTO trajectories (id, date, latitude, longitude ) VALUES ('10133','2008-02-02 13:47:59',116.37659,39.85567); | ||
``` | ||
|
||
Agregando el nombre de la app (en este ejemplo nombramos el app `taxiapp`): | ||
|
||
```SQL | ||
-- Así se visualiza con el nombre de la tabla cambiado | ||
INSERT INTO taxiapp_trajectories (id, date, latitude, longitude ) VALUES ('10133','2008-02-02 13:47:59',116.37659,39.85567); | ||
``` | ||
|
||
Puede realizar este cambio fácilmente con la función de buscar y reemplazar | ||
(find and replace), para todas las apariciones en scripts SQL. | ||
|
||
También, hay un [video para ejemplificar como agregar el app en el script](https://youtu.be/iwc9R7fF7P4). | ||
|
||
### Generando tus endpoints | ||
|
||
Con Django es posible integrar herramientas como | ||
Django rest framework para trabajar la creación de una API y su [documentación oficial](https://www.django-rest-framework.org) | ||
es clave para guiarte en la instalación y uso de la herramienta. | ||
|
||
Al momento en que empieces a documentar los endpoints | ||
de tu API. Debes usar [Swagger para rest framework](https://drf-yasg.readthedocs.io/en/stable/readme.html) |
80 changes: 80 additions & 0 deletions
80
projects/05-fleet-management-api/docs/stack-python-django.pt.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,80 @@ | ||
# Fleet Management Software API en Python y Django | ||
|
||
Django é um framework web que incentiva o desenvolvimento rápido e limpo de | ||
aplicativos web, projetado para promover a escalabilidade no | ||
desenvolvimento. | ||
|
||
Entre as características mais importantes está o | ||
fato de que o Django trabalha com um | ||
[ORM (Mapeador Relacional de Objetos)](https://es.wikipedia.org/wiki/Mapeo_relacional_de_objetos) | ||
para facilitar a interação com o banco de dados. | ||
|
||
Django é uma excelente opção para desenvolver aplicativos web complexos | ||
que requerem uma ampla variedade de funcionalidades integradas, | ||
uma sólida arquitetura MVT (Model View Template) e | ||
uma grande comunidade de suporte. | ||
|
||
* [Django](https://www.djangoproject.com): | ||
como framework para implementar um servidor HTTP. | ||
* [Django REST Framework](https://www.django-rest-framework.org): como biblioteca | ||
complementar para criar APIs web RESTful. | ||
* [Postgresql](https://www.postgresql.org/): como banco de dados. | ||
|
||
## Dicas para trabalhar com Django | ||
|
||
### Suas primeiras instalações | ||
|
||
Para trabalhar com Django, você pode usar ambientes virtuais. | ||
No seguinte [vídeo](https://youtu.be/T2CZ7bltuMs), | ||
você pode se orientar para criar | ||
um ambiente virtual, também preparamos um [vídeo](https://youtu.be/YoKjtqxAXXw) | ||
que exemplifica como inicializar um projeto com Django. | ||
|
||
### Carregando informações no banco de dados | ||
|
||
Depois de ter acesso a uma instância | ||
do PostgreSQL, a [história do usuário 1](../README.md#história-do-usuário-1-carregar-informações-no-banco-de-dados) | ||
fala sobre criar as tabelas para carregar as informações. | ||
Uma das abordagens que sugerimos é: | ||
|
||
1. Criar os modelos | ||
2. Em seguida, gerar as migrações (usando o ORM do Django) | ||
3. Carregar as informações no seu banco de dados | ||
|
||
Para isso, recomendamos primeiro ter um único "app" para controlar tudo | ||
relacionado à administração de táxis e dentro do app criar dois modelos, | ||
um para armazenar as informações dos táxis (`taxis`) e outro para armazenar as | ||
informações de trajetórias (`trajectories`). | ||
|
||
Você deve definir os campos de cada modelo de acordo com as informações fornecidas. | ||
Quando quiser carregar as informações, é necessário modificar o script | ||
para especificar em qual app as 2 tabelas trabalharão. Preparamos o seguinte. | ||
|
||
Exemplo de modificação: | ||
|
||
```SQL | ||
-- Assim é como uma linha é originalmente visualizada no script | ||
INSERT INTO trajectories (id, date, latitude, longitude ) VALUES ('10133','2008-02-02 13:47:59',116.37659,39.85567); | ||
``` | ||
|
||
Ao usar o nome do app (neste exemplo, chamamos o app de `taxiapp`): | ||
|
||
```SQL | ||
-- Assim é como a linha é visualizada com o nome da tabela alterado | ||
INSERT INTO taxiapp_trajectories (id, date, latitude, longitude ) VALUES ('10133','2008-02-02 13:47:59',116.37659,39.85567); | ||
``` | ||
|
||
Pode fazer essa mudança facilmente usando a função de buscar e substituir | ||
(find and replace), para todas as ocorrências nos scripts SQL. | ||
|
||
Também, há um [vídeo para exemplificar como adicionar o app no script](https://youtu.be/iwc9R7fF7P4). | ||
|
||
### Gerando seus endpoints | ||
|
||
Com Django, é possível integrar ferramentas como | ||
Django REST Framework para trabalhar na criação de uma API e sua | ||
[documentação oficial](https://www.django-rest-framework.org) | ||
é fundamental para orientá-lo na instalação e uso da ferramenta. | ||
|
||
Quando começar a documentar os endpoints | ||
de sua API, você deve usar [Swagger para REST Framework](https://drf-yasg.readthedocs.io/en/stable/readme.html) |
Oops, something went wrong.