Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

exercises 00-intro to 04-runnig-flask #80

Merged
merged 35 commits into from
Jan 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
a6ed2c1
Update README.md
josemoracard Jan 5, 2024
48a9480
Update README.md
josemoracard Jan 5, 2024
17c1b31
Update README.es.md
josemoracard Jan 5, 2024
9b43b4d
Update README.md
josemoracard Jan 5, 2024
7e10537
Update README.md
josemoracard Jan 5, 2024
08361fa
Update README.es.md
josemoracard Jan 5, 2024
67716c4
Update README.md
josemoracard Jan 5, 2024
0fb919b
Update README.es.md
josemoracard Jan 5, 2024
b2d61ba
Update README.md
josemoracard Jan 5, 2024
de4371c
Update README.md
josemoracard Jan 5, 2024
9b09e4b
Update README.es.md
josemoracard Jan 5, 2024
c7bc48b
Update README.es.md
josemoracard Jan 5, 2024
8f3b5cc
Update README.md
josemoracard Jan 5, 2024
df593df
Update README.es.md
josemoracard Jan 5, 2024
ee8f396
Update test.py
josemoracard Jan 5, 2024
b2cc70a
Update README.md
josemoracard Jan 5, 2024
cc51548
Update README.md
josemoracard Jan 5, 2024
4e6f894
Update README.es.md
josemoracard Jan 5, 2024
f73297e
Update README.es.md
josemoracard Jan 5, 2024
5cb104d
Update README.md
josemoracard Jan 5, 2024
146c77c
Update README.md
josemoracard Jan 5, 2024
3d7187c
Update README.es.md
josemoracard Jan 5, 2024
9cc8f53
Update solution.hide.py
josemoracard Jan 5, 2024
0ccd08a
Update README.es.md
josemoracard Jan 5, 2024
a7ac3d0
Update README.md
josemoracard Jan 5, 2024
9667c2c
Update README.es.md
josemoracard Jan 5, 2024
26234dc
Update README.md
josemoracard Jan 5, 2024
1283748
Update README.es.md
josemoracard Jan 5, 2024
39e5aae
Update README.md
josemoracard Jan 5, 2024
8e88253
Update solution.hide.py
josemoracard Jan 5, 2024
e971207
Update test.py
josemoracard Jan 5, 2024
bbd86dd
Update README.md
josemoracard Jan 5, 2024
a4a3c71
Update README.md
josemoracard Jan 5, 2024
66076ee
Update README.es.md
josemoracard Jan 5, 2024
268d433
Update README.es.md
tommygonzaleza Jan 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 20 additions & 4 deletions .learn/exercises/00-intro/README.es.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Bienvenido a Flask!
# Welcome to Flask!

En este tutorial vamos a construir una REST API que expone 3 endpoints
internet:
En este tutorial vamos a construir una REST API que expone 3 endpoints a Internet:

```txt
GET /todos
Expand Down Expand Up @@ -39,7 +38,24 @@ Añadirá un nuevo to-do a la lista. Recibirá el siguiente request body:

Y retornará la lista actualizada de los to-dos:

```javascript
[
{
"done": true,
"label": "Sample Todo 1"
},
{
"done": true,
"label": "Sample Todo 2"
},
{
"done": true,
"label": "Sample Todo 3"
}
]
```

## DELETE /todos/<int:position>

Eliminará un to-do basándose en la posición dada al final de la url, y retorna la lista actualizada de to-dos.
Eliminará un to-do basándose en la posición dada al final de la URL y retorna la lista actualizada de to-dos.

12 changes: 6 additions & 6 deletions .learn/exercises/00-intro/README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# Welcome to Flask!

In this tutorial we are going to be building a REST API that exposes 3 endpoints to the internet:
In this tutorial, we are going to be building a REST API that exposes 3 endpoints to the Internet:

```txt
GET /todos
POST /todos
DELETE /todos/<int:position>
```

## **GET /todos**
## GET /todos

It will return the list of all todos in a JSON format like this:

Expand All @@ -25,7 +25,7 @@ It will return the list of all todos in a JSON format like this:
]
```

## **POST /todos**
## POST /todos

The POST method is going to add a new todo to the list by sending the following request body:

Expand All @@ -36,7 +36,7 @@ The POST method is going to add a new todo to the list by sending the following
}
```

And then, it returns the updated list of todos:
And then it returns the updated list of todos:

```javascript
[
Expand All @@ -55,6 +55,6 @@ And then, it returns the updated list of todos:
]
```

## **DELETE /todos/<int:position>**
## DELETE /todos/<int:position>

The DELETE method is going to remove one todo based on a given position at the end of the url, and return the updated list of todos.
The DELETE method is going to remove one todo based on a given position at the end of the URL and return the updated list of todos.
20 changes: 10 additions & 10 deletions .learn/exercises/01-hello-world/README.es.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
# Hello World with Flask
# `01` Hello World with Flask

En este tutorial construiremos una REST API utilizando el lenguaje de programación Python y la librería de Flask [Flask library](https://flask.palletsprojects.com/en/1.1.x/) (ideal para crear API's).
En este tutorial construiremos una REST API utilizando el lenguaje de programación Python y la librería de [Flask](https://flask.palletsprojects.com/) (ideal para crear APIs).

¡Pero vamos a hacerlo correctamente! Siguiendo todas las buenas prácticas; Es por ello que debemos instalar y aprender un par de cosas antes.

## 📦 Requerimientos
## 📦 Requerimientos:

1. Python 3+

2. **Pipenv**: Utilizaremos [Pipenv package manager](https://pipenv-fork.readthedocs.io/en/latest/) en estos ejercicios, por favor instala [Pipenv en tu computador](https://github.com/pypa/pipenv#installation) si es que aún no lo has hecho.
2. **Pipenv**: Utilizaremos [Pipenv package manager](https://pipenv-fork.readthedocs.io/en/latest/) en estos ejercicios, por favor instala [Pipenv en tu computador](https://github.com/pypa/pipenv#installation) si es que aún no lo has hecho.

Si estás en Gitpod, no tienes que instalar nada, Pipenv y Python 3 ya están instalados.
Si estás en Codespaces o Gitpod, no tienes que instalar nada, Pipenv y Python 3 ya están instalados.

## 📝 Instrucciones:

1. Abre una nueva terminal (deja esta abierta).
1. Abre una nueva terminal (y mantenla abierta).

2. Asegúrate de tener la versión 3 de Python:

```bash
$ python --version

# otra alternativa es tipear:
# Otra alternativa es:

$ python3 --version
```

👉 Nota: Si no tienes la versión 3 de Python, instálala, [🔥 te recomendamos usar Pyenv](https://github.com/pyenv/pyenv) para instalar Python.
> 👉 Nota: Si no tienes la versión 3 de Python, instálala, [🔥 te recomendamos usar Pyenv](https://github.com/pyenv/pyenv) para instalar Python.

3. Asegúrate de tener `pipenv` instalado:

En vez de usar Pip y virtual env, usaremos Pipenv: Una combinación de ambas tecnologías que harán tu vida mucho más fácil.

```txt
```bash
$ pipenv --version
```

Prueba estos pasos y dale clic a `next →` para continuar.
Termina con las instrucciones y dale clic a `next →` para continuar.
23 changes: 11 additions & 12 deletions .learn/exercises/01-hello-world/README.md
Original file line number Diff line number Diff line change
@@ -1,40 +1,39 @@
# Hello World with Flask
# `01` Hello World with Flask

During this tutorial, we'll be building a REST API using the Python programming language and the [Flask library](https://flask.palletsprojects.com/en/1.1.x/) (ideal for creating APIs).
During this tutorial, we'll be building a REST API using the Python programming language and the [Flask library](https://flask.palletsprojects.com/) (ideal for creating APIs).

But we are going to do it the right way! Following all the good practices, we have to install and learn some things first.

## 📦 Requirements
## 📦 Requirements:

1. Python 3+

2. Pipenv: we are going to be using the [Pipenv package manager](https://pipenv-fork.readthedocs.io/en/latest/) during these exercises, please install [Pipenv in your computer](https://github.com/pypa/pipenv#installation) if you don't have it already.
2. **Pipenv**: we are going to be using the [Pipenv package manager](https://pipenv-fork.readthedocs.io/en/latest/) during these exercises, please install [Pipenv in your computer](https://github.com/pypa/pipenv#installation) if you don't have it already.

If you are building this project using Gitpod, you don't have to install anything. Pipenv and Python 3 already come pre-installed.
If you are building this project using Codespaces or Gitpod, you don't have to install anything. Pipenv and Python 3 already come pre-installed.

## 📝 Instructions:

1. Open a new terminal (leave this one open)
1. Open a new terminal (and leave it open).

2. Make sure you have python version 3 by running the following commands:
2. Make sure you have Python version 3 by running the following commands:

```bash
$ python --version

# alternatively you can type
# Alternatively you can type:

$ python3 --version
```

> 👉 Note: if you don't have python version 3 you should go ahead and install it, we [🔥 strongy recommend using Pyenv](https://github.com/pyenv/pyenv) to install python.

👉 Note: if you don't have python version 3 you should go ahead and install it, we [🔥 strongy recommend using Pyenv](https://github.com/pyenv/pyenv) to install python.

3. Make sure you have pipenv installed:
3. Make sure you have `pipenv` installed:

Instead of using Pip and virtual env separately, we are going to be using Pipenv: A combination of both technologies that will make your life much easier.

```bash
$ pipenv --version
```

Test your step and click `next →` continue.
Finish the instructions and click `next →` to continue.
8 changes: 4 additions & 4 deletions .learn/exercises/02-pipenv-installation/README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

Es posible tener varios proyectos con Python con diferentes versiones de Python, por esta razón debes especificar que versión de Python quieres usar en cada proyecto durante su configuración.

En este caso, no importa que versión de Python usemos mientras sea mayor a 3.0.
En este caso, no importa que versión de Python usemos mientras sea mayor a la `3.0`.

Cada proyecto de python debe estar envuelto en un "ambiente virtual" para asegurarse de que cada uno de ellos tenga su propia versión de Python, módulos y librerías, nada se instala globalmente en tu computador, sólo se instala dentro del entorno en el que se encuentra en la carpeta `.venv`.
Cada proyecto de Python debe estar envuelto en un "ambiente virtual" para asegurarse de que cada uno de ellos tenga su propia versión de Python, módulos y librerías, nada se instala globalmente en tu computador, solo se instala dentro del entorno en el que se encuentra en la carpeta `.venv`.

## 📝 Instrucciones:

Expand All @@ -14,8 +14,8 @@ Cada proyecto de python debe estar envuelto en un "ambiente virtual" para asegur
$ pipenv install --python 3
```

Deberías ver un **PipFile** en la raíz de tu proyecto y dentro debería tener **[requires]** en la versión de Python 3+ similar a este (pero quizás con una diferente versión de Python 3).
Deberías ver un **PipFile** en la raíz de tu proyecto y dentro debería tener **[requires]** en la versión de Python 3+ similar a este (pero quizás con una diferente versión de Python 3).

![Pipfile preview](../../assets/pipfile.png?raw=true)

Prueba este paso y haz clic en `next →` para continuar.
Sigue los pasos y haz clic en `next →` para continuar.
12 changes: 6 additions & 6 deletions .learn/exercises/02-pipenv-installation/README.md
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
# `02` Initialize Pipenv

It is possible to have several python projects with different versions of python, that's why you need to specify which python version you want to use for every project during setup.
It is possible to have several Python projects with different versions of Python, that's why you need to specify which Python version you want to use for every project during setup.

In this case, we don't care which version of python we use as long as it's more than 3.0.
In this case, we don't care which version of Python we use as long as it's more than `3.0`.

Every python project should be wrapped in a "virtual environment" to ensure that each of them have their own Python version, modules and libraries. Make sure nothing gets installed globally in your computer, only install inside the specified environment under the `.venv` folder.
Every Python project should be wrapped in a "virtual environment" to ensure that each of them have their own Python version, modules and libraries. Make sure nothing gets installed globally in your computer, only install inside the specified environment under the `.venv` folder.

## 📝 Instructions:

1. Run the following command to create a new virtual environment with python 3 on it:
1. Run the following command to create a new virtual environment with Python 3 on it:

```bash
$ pipenv install --python 3
```

You should see a **PipFile** on the root of your project and it should have a **[requires]** inside of it for python version 3+: similar to this one (but maybe with a different python 3 version).
You should see a **PipFile** on the root of your project and it should have a **[requires]** inside of it for Python version 3+: similar to this one (but maybe with a different Python 3 version).

![Pipfile preview](../../assets/pipfile.png?raw=true)

Test your step and click `next →` continue.
Follow the steps and click `next →` to continue.
8 changes: 4 additions & 4 deletions .learn/exercises/02.1-flask-installation/README.es.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `02.1` Install Flask

Ahora tenemos que instalar la dependencia de nuestro primer paquete para este proyecto: [Flask](https://flask.palletsprojects.com/en/1.1.x/).
Ahora tenemos que instalar la dependencia de nuestro primer paquete para este proyecto: [Flask](https://flask.palletsprojects.com/).

## 📝 Instrucciones:

Expand All @@ -10,8 +10,8 @@ Ahora tenemos que instalar la dependencia de nuestro primer paquete para este pr
$ pipenv install flask
```

## Resultado esperado:
## 💻 Resultado esperado:

![Expected console ouput](../../assets/install-flask.png?raw=true)
![Resultado de consola esperado](../../assets/install-flask.png?raw=true)

Prueba estos pasos y dale clic a `next →` para continuar.
Sigue los pasos y haz clic en `next →` para continuar.
10 changes: 5 additions & 5 deletions .learn/exercises/02.1-flask-installation/README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# `02.1` Install Flask

Now we have to install our first package dependency for this project: [Flask](https://flask.palletsprojects.com/en/1.1.x/).
Now we have to install our first package dependency for this project: [Flask](https://flask.palletsprojects.com/).

## 📝Instructions:
## 📝 Instructions:

1. Run the following command on your terminal to install the flask package:
1. Run the following command on your terminal to install the Flask package:

```bash
$ pipenv install flask
```

## Expected output:
## 💻 Expected output:

![Expected console ouput](../../assets/install-flask.png?raw=true)

Test your step and click `next →` continue.
Follow the steps and click `next →` to continue.
2 changes: 1 addition & 1 deletion .learn/exercises/02.1-flask-installation/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
def test_pipfile_exists():
assert os.path.isfile("Pipfile")

@pytest.mark.it("Flask must exist on the pipfile dependency [packages]")
@pytest.mark.it("Flask must exist on the Pipfile dependency [packages]")
def test_pipfile_contains_flask():
with open("Pipfile", "r") as f:
toml_content = f.read()
Expand Down
11 changes: 5 additions & 6 deletions .learn/exercises/03-first-flask-app/README.es.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# `03` First Flask App

Flask es una app que se comporta como un servidor web, es decir que expone (publica) un grupo de URLs en internet (como una api o un sitio web).
Flask es una app que se comporta como un servidor web, es decir, que expone (publica) un grupo de URLs en internet (como una API o un sitio web).

Por ejemplo, puedes usar Flask con un dominio y exponer las siguientes URLs en internet:

Expand All @@ -10,21 +10,20 @@ myporfolio.com/about-me
myporfolio.com/contact-me
```

Esas 3 URLs expuestas por Flask se convertirán en tu postafolio personal de sitios webs.
Esas 3 URLs expuestas por Flask se convertirán en tu portafolio personal de sitios webs.

Para crear nuestro primer servidor debemos añadir las siguientes dos líneas en cualquier archivo de Python:


```python
from flask import Flask
app = Flask(__name__)
```

## 📝 Instrucciones:

1. En la raíz del proyecto crea una carpeta llamada `src`.

2. Dentro de ella, crea un archivo `src/app.py`.
2. Dentro de ella, crea un archivo `app.py`.

3. Añade el código necesario para crear una nueva app Flask especificada en las intrucciones anteriores.
3. Añade el código necesario para crear una nueva app Flask especificada en las instrucciones anteriores.


9 changes: 5 additions & 4 deletions .learn/exercises/03-first-flask-app/README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## `03` First Flask App
# `03` First Flask App

Flask is an app that behaves like a web server: it exposes (publishes) a group of URLs to the internet (like an API or website).

Expand All @@ -12,16 +12,17 @@ mywebsite.com/contact-me

Those three URLs exposed by Flask will become your personal website.

To create our first server, we need to add the following two lines to our python file that we are going to create (These two lines have to be in every flask project you create to work correctly):
To create our first server, we need to add the following two lines to our Python file that we are going to create (These two lines have to be in every flask project you create to work correctly):

```python
from flask import Flask
app = Flask(__name__)
```

## 📝 Instructions:

1. On the root of your project create a `src` folder.
1. On the root of your project, create a `src` folder.

2. Inside of it, create a file named `app.py`.

3. As instructed above, add the code to create a new flask app.
3. As instructed above, add the code to create a new Flask app.
10 changes: 6 additions & 4 deletions .learn/exercises/03.1-app-run/README.es.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@

Después de crear nuestra app, debemos ejecutar e inicializar la aplicación.

Cuando la aplicación se ejecute, usará tu línea de comando, ya no podrás escribir nada en ella porque el servidor de la aplicación (como por ejemplo flask) nunca deja de ejecutarse, espera por las "requests" o solicitudes eternamente.
Cuando la aplicación se ejecute, usará tu línea de comando, ya no podrás escribir nada en ella porque el servidor de la aplicación (como por ejemplo Flask) nunca deja de ejecutarse, espera por las "requests" o solicitudes eternamente.

## 📝 Instrucciones:

1. Añade las siguientes líneas al final de tu archivo `src/app.py`:
1. Añade las siguientes líneas al final de tu archivo `app.py`:

```python
# Estas dos líneas siempre seben estar al final de tu archivo app.py.
# Estas dos líneas siempre deben estar al final de tu archivo app.py

if __name__ == '__main__':
app.run(host='0.0.0.0', port=3245, debug=True)
```

> Estas dos líneas deberían estar al final de tu archivo.

Ejecuta tu nuevo servidor abriendo un **nuevo termial aparte** y escribe el siguiente comando:
Ejecuta tu nuevo servidor abriendo un **nuevo terminal aparte** y escribe el siguiente comando:

```bash
$ pipenv run python src/app.py
Expand All @@ -26,3 +26,5 @@ $ pipenv run python src/app.py
> Abre una nueva terminal para ejecutar este comando.

![Running Terminal](../../assets/running-flask-app.gif?raw=true)

La forma en que funciona este comando es utilizando nuestro comando combinado `pipenv` para iniciar nuestro entorno virtual y ejecutarlo usando Python. Nuestro archivo objetivo para iniciar nuestro servidor para futuras solicitudes es `src/app.py`.
Loading
Loading