En este lab, usarás Gemini Code Assist, un colaborador de desarrollo de apps potenciado por IA de Google Cloud, para explicar, probar, documentar y mejorar una app.
Usarás Cloud Workstations para crear un entorno de desarrollo que tenga Code OSS como entorno de desarrollo integrado (IDE).
Este lab está dirigido a desarrolladores con diversos niveles de experiencia que crean apps. No es necesario que conozcas el desarrollo de apps en la nube.
Nota: Como tecnología en etapa inicial, Gemini puede generar resultados que parecen posibles, pero que no son correctos. Te recomendamos validar todos los resultados de Gemini antes de usarlos. Para obtener más información, consulta Gemini para Google Cloud y la IA responsable.
Objetivos
En este lab, aprenderás a realizar las siguientes tareas:
Crear un entorno de desarrollo de apps basado en la nube con Cloud Workstations
Usar Gemini Code Assist para explicar el código
Generar pruebas de unidades con Gemini Code Assist
Darle instrucciones a Gemini para mejorar el aspecto de una app
Usar Gemini Code Assist para que el código sea más legible
Usar Gemini Code Assist para agregar comentarios al código en inglés o en otro idioma
Configuración
En cada lab, recibirá un proyecto de Google Cloud y un conjunto de recursos nuevos por tiempo limitado y sin costo adicional.
Accede a Qwiklabs desde una ventana de incógnito.
Ten en cuenta el tiempo de acceso del lab (por ejemplo, 1:15:00) y asegúrate de finalizarlo en el plazo asignado.
No existe una función de pausa. Si lo necesita, puede reiniciar el lab, pero deberá hacerlo desde el comienzo.
Cuando esté listo, haga clic en Comenzar lab.
Anote las credenciales del lab (el nombre de usuario y la contraseña). Las usarás para acceder a la consola de Google Cloud.
Haga clic en Abrir Google Console.
Haga clic en Usar otra cuenta, copie las credenciales para este lab y péguelas en el mensaje emergente que aparece.
Si usa otras credenciales, se generarán errores o incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación.
Active Cloud Shell
Cloud Shell es una máquina virtual que contiene herramientas de desarrollo y un directorio principal persistente de 5 GB. Se ejecuta en Google Cloud. Cloud Shell proporciona acceso de línea de comandos a sus recursos de Google Cloud. gcloud es la herramienta de línea de comandos de Google Cloud, la cual está preinstalada en Cloud Shell y es compatible con la función de autocompletado con tabulador.
En el panel de navegación de Google Cloud Console, haga clic en Activar Cloud Shell ().
Haga clic en Continuar.
El aprovisionamiento y la conexión al entorno tardan solo unos momentos. Una vez que se conecte, también estará autenticado, y el proyecto estará configurado con su PROJECT_ID. Por ejemplo:
Comandos de muestra
Si desea ver el nombre de cuenta activa, use este comando:
Para verificar este objetivo, haz clic en Revisar mi progreso.
Habilitar las APIs correspondientes y establecer los roles de IAM
Tarea 2: Crea un Cloud Workstations
En este lab, se usa la asistencia de Gemini en el desarrollo de una aplicación con el complemento Cloud Code para el IDE de Cloud Workstations. Cloud Workstations es un entorno de desarrollo integrado completamente administrado que incluye integración nativa con Gemini.
En esta tarea, configurarás y aprovisionarás tu entorno de Cloud Workstations y habilitarás el complemento Cloud Code para Gemini.
Visualiza el clúster de estación de trabajo
En este lab, se creó con anterioridad un clúster de estación de trabajo llamado my-cluster. Este clúster se usa para configurar y crear la estación de trabajo.
Para abrir la página Workstations, en la barra de título de la consola de Google Cloud, escribe Cloud Workstations en el campo Buscar y, luego, haz clic en Cloud Workstations.
Si Cloud Workstations no está fijado (), en el menú de navegación (), haz clic en Fijar ().
En el panel de navegación, haz clic en Administración de clústeres.
Comprueba el Estado del clúster: Si el estado del clúster es En proceso de conciliación o Actualizando, actualiza la página periódicamente y espera hasta que pase a Listo antes de continuar con el siguiente paso.
Crea una configuración y una estación de trabajo
Para crear la estación de trabajo y su configuración, ejecuta los siguientes comandos en Cloud Shell:
En el panel de navegación, haz clic en Estaciones de trabajo.
Una vez que se cree la estación de trabajo, aparecerá en Mis estaciones de trabajo con el estado Detenida.
Para iniciar la estación de trabajo, haz clic en Iniciar.
Mientras se inicia la estación de trabajo, el estado pasará a Iniciando. Espera a que el estado pase a En ejecución, lo que indica que la estación está lista para usarse.
Inicia el IDE
Para que funcionen adecuadamente, algunas extensiones necesitan que las cookies de terceros estén habilitadas en tu navegador.
Para habilitar las cookies de terceros en Chrome, haz clic en Configuración en el menú de Chrome.
En la barra de búsqueda, escribe Cookies de terceros.
Haz clic en el parámetro de configuración de Cookies de terceros y selecciona Permitir cookies de terceros.
Nota: Si deseas restablecer tu navegador a su configuración actual después de este lab, toma nota de la configuración original para las cookies de terceros.
Para ejecutar el IDE de Code OSS en la estación de trabajo, ve a la página de Estaciones de trabajo en la consola de Google Cloud y haz clic en Iniciar.
El IDE se abre en otra pestaña del navegador.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Crear y ejecutar un Cloud Workstations
Tarea 3: Actualiza la extensión de Cloud Code para habilitar Gemini
En esta tarea, habilitarás Gemini en Cloud Code para tu IDE de estación de trabajo.
Conéctate a Google Cloud
Para conectarte a Google Cloud en tu estación de trabajo, realiza los siguientes pasos:
Para iniciar el flujo Cloud Code - Acceder, haz clic en Cloud Code - Acceder en la barra de estado en la parte inferior de la ventana y, luego, abre el vínculo que se muestra en la terminal en tu navegador.
Si se te pide que confirmes la apertura del sitio web externo, haz clic en Abrir.
Elige una cuenta para continuar a Gemini Code Assist y, luego, haz clic en Acceder.
Tu código de verificación aparecerá en la pestaña del navegador.
Nota: Es probable que veas una advertencia que indique que ejecutaste un comando de gcloud auth login. Este proceso es normal. El IDE ejecutó este comando por ti.
Haz clic en Copiar.
Regresa a la terminal del IDE y pega el código donde dice Ingresar código de autorización.
Si se te pide que apruebes la copia desde el portapapeles, haz clic en Permitir.
Presiona Intro y espera a que la barra de estado muestre Cloud Code - Sin proyecto.
Ya te conectaste a Google Cloud.
Habilita Gemini en Cloud Code
Para habilitar Gemini en Cloud Code en el IDE de tu estación de trabajo, sigue los siguientes pasos:
En el IDE de tu estación de trabajo, haz clic en el menú () y, luego, ve a Archivo > Preferencias > Configuración.
En Configuración de búsqueda, escribe Gemini.
En la pestaña Usuario del diálogo Configuración, selecciona Extensiones > Gemini Code Assist.
En la página de configuración de Cloud Code, ingresa el ID del proyecto de Google Cloud en Geminicodeassist: Proyecto.
Para seleccionar el proyecto de Cloud Code, haz clic en Cloud Code - Sin proyecto en la barra de estado, en la parte inferior de la ventana. Luego, elige la opción Selecciona un proyecto de Google Cloud y selecciona .
El ID del proyecto se muestra ahora en la barra de estado. Ya puedes usar Gemini.
Tarea 4: Descarga, examina y ejecuta una app de Flask en Python
Se guardó el código de una app de Flask en Python en un bucket de Cloud Storage.
En esta tarea, descargarás, examinarás y ejecutarás una app de Flask en Python en el IDE. Gemini Code Assist explica el código.
Accede a la terminal
En el menú del IDE (), elige Terminal > Terminal nueva.
En la terminal, ejecuta el siguiente comando:
gcloud auth login
Abre el vínculo que se muestra en la terminal en tu navegador.
Elige una cuenta para continuar con Sign in to Google Cloud SDK y, luego, haz clic en Continuar.
Por último, haz clic en Permitir en la ventana que indica Google Cloud SDK wants to access your Google Account.
Tu código de verificación aparecerá en la pestaña del navegador.
Nota: Es probable que veas una advertencia que indique que ejecutaste un comando de gcloud auth login. Este proceso es normal. El IDE ejecutó este comando por ti.
Haz clic en Copiar.
Regresa al IDE y pega el código en la terminal, donde dice Enter the verification code provided in your browser y, luego, presiona Intro.
Tu sesión de terminal ahora está conectada a Google Cloud.
Instala el entorno virtual de Python
Para instalar Python de forma local en un entorno virtual, ejecuta los siguientes comandos:
El código se copió en un subdirectorio llamado codeassist-demo.
En la barra de actividad del IDE, haz clic en Explorador () y en Abrir carpeta.
En el cuadro de diálogo Abrir carpeta, haz clic en codeassist-demo y, luego, en Aceptar.
Se muestra la estructura del directorio.
Examina el código
Selecciona main.py.
El archivo de Python se abre en una ventana del editor.
En la barra de actividad del IDE, haz clic en Gemini Code Assist ().
Gemini Code Assist es un colaborador potenciado por IA que ayuda con las tareas de desarrollo de apps.
En el panel de Gemini Code Assist, escribe la siguiente instrucción y, luego, haz clic en Send ():
Explain this
Las instrucciones son preguntas o sentencias que describen la ayuda que necesitas. Los mensajes pueden incluir contexto de código existente que Google Cloud analiza para proporcionar respuestas más útiles o completas. Para obtener más información para escribir instrucciones que generen respuestas correctas, consulta Escribe mejores instrucciones para Gemini en Google Cloud.
Gemini explicará el código en main.py. La respuesta podría explicar estas secciones:
Dependencias
Configuración de la aplicación
Rutas
Ejecución de la aplicación
Cuando selecciones el código, la misma instrucción hará que Gemini Code Assist explique solo el código seleccionado.
Nota: El estado del historial de chat se mantiene solo en memoria y no persiste cuando se cambia a otro espacio de trabajo o cuando se cierra el IDE. Gemini no usa tus instrucciones ni sus respuestas como datos para entrenar su modelo. Para obtener más información, consulta Cómo Gemini para Google Cloud usa tus datos.
En el editor, selecciona la definición de app.route y la función para la ruta POST /convert, haz clic en la bombilla () y, luego, en Gemini: Explain this.
Gemini explicará el código seleccionado en detalle.
Ejecuta la app
Si la terminal se cerró, en el menú del IDE (), elige Terminal > Terminal nueva.
En la terminal, ejecuta los siguientes comandos:
cd ~/codeassist-demo
source ~/env/bin/activate
python3 main.py
El comando devuelve un error que indica que no hay un módulo llamado flask. Puedes usar Gemini Code Assist para ayudarte a comprender el problema.
En el panel de chat de Gemini Code Assist, escribe la siguiente instrucción:
How do you install Python requirements?
Es probable que Gemini Code Assist mencione que puedes usar el instalador de paquetes pip y un archivo requirements.txt para instalar los requisitos de Python.
En la barra de actividad del IDE, haz clic en Explorador () y, luego, en requirements.txt.
Flask y su versión requerida se indican en el archivo requirements.txt.
En la terminal, ejecuta el siguiente comando:
pip install -r requirements.txt
Flask ya está instalado.
En la terminal, ejecuta el siguiente comando:
python3 main.py
Un diálogo indica que el servicio que escucha en el puerto 8080 ahora está disponible para la vista previa en la Web.
Haz clic en Abrir vista previa y, luego, en Abrir.
La app web Roman Numerals se abrirá en una pestaña nueva.
En el cuadro de números, ingresa 123 y, luego, haz clic en Convert.
El número que se devuelve es CXXIII. C es 100, X es 10 y I es 1. Esto parece correcto.
Haz clic en Return to home page, ingresa 45 y, luego, haz clic en Convert.
El número que se devuelve es XXXXV. Técnicamente, esto es correcto desde el punto de vista matemático (4 veces 10 más 5), pero la representación normal de 40 es XL (50 menos 10) y, por lo tanto, la representación más tradicional de los números romanos es XLV.
Veremos eso más adelante.
En la barra de actividad del IDE, haz clic en Explorer () y en calendar.py.
La función number_to_roman convierte un número en un numeral romano.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Copiar código y ejecutar una app de Flask en Python
Tarea 5: Agrega pruebas de unidades
En esta tarea, usarás Gemini Code Assist para generar pruebas de unidades para tu código.
En la barra de actividad del IDE, haz clic en Gemini Code Assist () y, luego, ingresa la siguiente instrucción:
Create unit tests for a fixed version of number_to_roman
Gemini Code Assist reconoce el código en la pestaña abierta de calendar.py. Debería proporcionar un código de ejemplo similar a este:
import unittest
import calendar
class TestNumberToRoman(unittest.TestCase):
def test_basic_conversions(self):
self.assertEqual(calendar.number_to_roman(1), "I")
self.assertEqual(calendar.number_to_roman(5), "V")
self.assertEqual(calendar.number_to_roman(10), "X")
self.assertEqual(calendar.number_to_roman(50), "L")
self.assertEqual(calendar.number_to_roman(100), "C")
self.assertEqual(calendar.number_to_roman(500), "D")
self.assertEqual(calendar.number_to_roman(1000), "M")
def test_combinations(self):
self.assertEqual(calendar.number_to_roman(4), "IV")
self.assertEqual(calendar.number_to_roman(9), "IX")
self.assertEqual(calendar.number_to_roman(14), "XIV")
self.assertEqual(calendar.number_to_roman(40), "XL")
self.assertEqual(calendar.number_to_roman(90), "XC")
self.assertEqual(calendar.number_to_roman(400), "CD")
self.assertEqual(calendar.number_to_roman(900), "CM")
self.assertEqual(calendar.number_to_roman(1994), "MCMXCIV")
self.assertEqual(calendar.number_to_roman(3888), "MMMDCCCLXXXVIII")
def test_edge_cases(self):
self.assertEqual(calendar.number_to_roman(0), "") # Se debería encargar del cero
self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Se debería encargar de las entradas no válidas
def test_large_numbers(self):
self.assertEqual(calendar.number_to_roman(3000), "MMM")
self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX")
if __name__ == '__main__':
unittest.main()
Nota: Gemini puede crear pruebas de unidades positivas para tu código tal como está implementado actualmente, en lugar de crear pruebas positivas cuando el código siga correctamente la implementación estándar de los números romanos. Para los fines de este lab, usarás una versión correcta de las pruebas de unidades.
Para detener la app en ejecución, presiona CTRL + C en la terminal.
Para crear pruebas de unidades para la función de conversión, ejecuta los siguientes comandos en la terminal:
cat > ~/codeassist-demo/test_calendar.py <<EOF
import unittest
import calendar
class TestNumberToRoman(unittest.TestCase):
def test_basic_conversions(self):
self.assertEqual(calendar.number_to_roman(1), "I")
self.assertEqual(calendar.number_to_roman(5), "V")
self.assertEqual(calendar.number_to_roman(10), "X")
self.assertEqual(calendar.number_to_roman(50), "L")
self.assertEqual(calendar.number_to_roman(100), "C")
self.assertEqual(calendar.number_to_roman(500), "D")
self.assertEqual(calendar.number_to_roman(1000), "M")
def test_combinations(self):
self.assertEqual(calendar.number_to_roman(4), "IV")
self.assertEqual(calendar.number_to_roman(9), "IX")
self.assertEqual(calendar.number_to_roman(14), "XIV")
self.assertEqual(calendar.number_to_roman(40), "XL")
self.assertEqual(calendar.number_to_roman(90), "XC")
self.assertEqual(calendar.number_to_roman(400), "CD")
self.assertEqual(calendar.number_to_roman(900), "CM")
self.assertEqual(calendar.number_to_roman(1994), "MCMXCIV")
self.assertEqual(calendar.number_to_roman(3888), "MMMDCCCLXXXVIII")
def test_edge_cases(self):
self.assertEqual(calendar.number_to_roman(0), "") # Se debería encargar del cero
self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Se debería encargar de las entradas no válidas
def test_large_numbers(self):
self.assertEqual(calendar.number_to_roman(3000), "MMM")
self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX")
if __name__ == '__main__':
unittest.main()
EOF
Para ejecutar las pruebas, ejecuta los siguientes comandos en la terminal:
cd ~/codeassist-demo
python3 test_calendar.py
Las pruebas fallarán:
======================================================================
ERROR: test_edge_cases (__main__.TestNumberToRoman.test_edge_cases)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/user/codeassist-demo/test_calendar.py", line 28, in test_edge_cases
self.assertRaises(TypeError, calendar.number_to_roman, "abc") # Should handle invalid input
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/unittest/case.py", line 778, in assertRaises
return context.handle('assertRaises', args, kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/unittest/case.py", line 238, in handle
callable_obj(*args, **kwargs)
File "/home/user/codeassist-demo/calendar.py", line 16, in number_to_roman
number = int(number)
^^^^^^^^^^^
ValueError: invalid literal for int() with base 10: 'abc'
======================================================================
FAIL: test_combinations (__main__.TestNumberToRoman.test_combinations)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/user/codeassist-demo/test_calendar.py", line 16, in test_combinations
self.assertEqual(calendar.number_to_roman(4), "IV")
AssertionError: 'IIII' != 'IV'
- IIII
+ IV
======================================================================
FAIL: test_large_numbers (__main__.TestNumberToRoman.test_large_numbers)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/user/codeassist-demo/test_calendar.py", line 33, in test_large_numbers
self.assertEqual(calendar.number_to_roman(3999), "MMMCMXCIX")
AssertionError: 'MMMDCCCCLXXXXVIIII' != 'MMMCMXCIX'
- MMMDCCCCLXXXXVIIII
+ MMMCMXCIX
----------------------------------------------------------------------
Ran 4 tests in 0.004s
FAILED (failures=2, errors=1)
Los errores fueron los siguientes:
abc no se manejó correctamente.
4 devolvió IIII en lugar de IV.
3999 devolvió MMMDCCCCLXXXXVIIII en lugar de MMMCMXCIX.
En cada función de prueba, el primer error que se encuentra hace que la función finalice.
Nota: Es posible que los resultados sean diferentes si el código de la prueba es diferente.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Crear pruebas de unidades para la función convert
Tarea 6: Corrige el código y hazlo más legible
En esta tarea, usarás Gemini Code Assist para corregir el código y hacerlo más legible.
En la barra de actividad del IDE, haz clic en Explorador () y, luego, en calendar.py.
En la barra de actividad del IDE, haz clic en Gemini Code Assist () y, luego, ingresa la siguiente instrucción:
Make my code more readable and fix any errors
Gemini Code Assist proporcionará mejoras en la legibilidad del código y, probablemente, solucionará el problema. A continuación, se muestra un ejemplo:
def number_to_roman(number):
"""Converts an integer to its Roman numeral equivalent.
Args:
number: An integer between 0 and 3999.
Returns:
A string representing the Roman numeral equivalent of the number.
Returns an empty string if the input is 0.
Raises TypeError if the input is not an integer or is out of range.
"""
try:
number = int(number)
except ValueError:
raise TypeError("Input must be an integer.")
if not 0 <= number <= 3999:
raise TypeError("Input must be between 0 and 3999.")
if number == 0:
return ""
roman_map = { 1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC',
50: 'L', 40: 'XL', 10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'}
result = ""
for value, numeral in roman_map.items():
while number >= value:
result += numeral
number -= value
return result
Gemini Code Assist también explica los cambios que se realizaron:
Key improvements:
1. Error Handling: Added TypeError for non-integer input and values outside the range 0-3999. This makes the function more robust.
2. Docstring: A clear docstring explains the function's purpose, arguments, return value, and error handling. This significantly improves readability and maintainability.
3. Efficiency and Correctness: Uses a roman_map dictionary and a more efficient algorithm to construct the Roman numeral. This handles subtractive notation (like "IV" for 4, "IX" for 9, etc.) correctly. The previous version had issues with these cases and was less efficient.
4. Zero Handling: Explicitly handles the case where the input number is 0, returning an empty string as expected.
5. Clarity: The code is now more concise and easier to understand. The logic is clearer and the variable names are more descriptive.
This revised version addresses the limitations and errors of the original implementation and adheres to best practices for Python code. It's more robust, readable, and efficient.
En este ejemplo, Gemini Code Assist proporcionó un algoritmo que hizo que el código fuera más legible y también corrigió problemas en el código original.
Para comparar el código en un archivo nuevo, en el panel de código dentro de Gemini Code Assist, haz clic en Diff with Open File ().
Para aceptar los cambios, haz clic en Aceptar. Se acepta el código actualizado.
En la terminal, ejecuta los siguientes comandos:
cd ~/codeassist-demo
python3 test_calendar.py
Si las pruebas no son positivas, intenta ejecutarlas varias veces para asegurarte de que no estén usando una versión almacenada en caché del módulo de calendario.
Si Gemini no corrigió el problema de los números romanos, algunas pruebas fallarán. Si esto sucede, puedes corregir el código por tu cuenta hasta que la prueba sea positiva o puedes reemplazar calendar.py por una versión que funcione.
Si algunas pruebas fallan, para corregir el código y volver a ejecutar las pruebas de unidades, ejecuta los siguientes comandos:
cat > ~/codeassist-demo/calendar.py <<EOF
def number_to_roman(number):
"""Converts an integer to its Roman numeral equivalent.
Args:
number: An integer between 0 and 3999.
Returns:
A string representing the Roman numeral equivalent of the number.
Returns an empty string if the input is 0.
Raises TypeError if the input is not an integer or is out of range.
"""
try:
number = int(number)
except ValueError:
raise TypeError("Input must be an integer.")
if not 0 <= number <= 3999:
raise TypeError("Input must be between 0 and 3999.")
if number == 0:
return ""
roman_map = { 1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC',
50: 'L', 40: 'XL', 10: 'X', 9: 'IX', 5: 'V', 4: 'IV', 1: 'I'}
result = ""
for value, numeral in roman_map.items():
while number >= value:
result += numeral
number -= value
return result
EOF
cd ~/codeassist-demo
python3 test_calendar.py
Ahora, las pruebas deberían ser positivas.
Para verificar este objetivo, haz clic en Revisar mi progreso.
Actualizar calendar.py para corregir problemas en el código original
Tarea 7: Mejora la legibilidad del código para hablantes no nativos de inglés
Si no eres hablante no nativo de inglés y dependes de una app de traducción, puedes usar Gemini Code Assist para generar comentarios en otros idiomas.
En esta tarea, usarás Gemini Code Assist para agregar comentarios al código, incluso en otro idioma.
En la barra de actividad del IDE, haz clic en Explorador () y, luego, en main.py.
En la barra de actividad del IDE, haz clic en Gemini Code Assist () y, luego, ingresa la siguiente instrucción:
Add comments to main.py
Gemini Code Assist agregará comentarios que ayudarán a explicar el código:
import os # Importa el módulo os para las variables de entorno
from flask import Flask, render_template, request # Importa los componentes del framework Flask
import calendar # Importa el módulo calendar para la conversión a números romanos
# Crea una instancia de la aplicación Flask
app = Flask(__name__)
# Define una ruta para la página de inicio
@app.route("/", methods=["GET"])
def home_page():
# Renderiza la plantilla index.html
return render_template("index.html")
# Define una ruta para el extremo de acceso de conversión
@app.route("/convert", methods=["POST"])
def convert():
# Obtiene el número de los datos del formulario
number = request.form["number"]
# Convierte el número a números romanos usando el módulo calendar
roman = calendar.number_to_roman(number)
# Renderiza la plantilla convert.html con el número y su equivalente en números romanos
return render_template("convert.html", number=number, roman=roman)
# Ejecuta la aplicación Flask si esta secuencia de comandos se ejecuta directamente
if __name__ == "__main__":
# Ejecuta la aplicación en modo de depuración, escuchando en todas las interfaces (0.0.0.0)
# y usando el puerto especificado en la variable de entorno PORT o el valor predeterminado 8080
app.run(debug=True, host="0.0.0.0", port=int(os.environ.get("PORT", 8080)))
¿Qué sucede si el inglés no es tu lengua materna?
En el panel de Gemini Code Assist, ingresa la siguiente instrucción:
Add Spanish comments to main.py
Gemini Code Assist puede proporcionar comentarios en diferentes idiomas para ayudar a la legibilidad del código.
Para verificar que solo se agregaron comentarios, en el panel de código de Gemini Code Assist, haz clic en Diff with Open File ().
Las actualizaciones se comparan con el código existente:
Para rechazar los cambios, haz clic en Rechazar.
Tarea 8: Mejora el aspecto de la app
Gemini Code Assist también puede ayudarte a que tu app se vea mejor.
En esta tarea, usarás Gemini Code Assist para mejorar el diseño visual de tu app.
En la terminal, ejecuta el siguiente comando:
cd ~/codeassist-demo
python3 main.py
Un diálogo indica que el servicio que escucha en el puerto 8080 ahora está disponible para la vista previa en la Web.
Haz clic en Abrir vista previa y, luego, en Abrir.
La app web Roman Numerals se abrirá en una pestaña nueva.
En la barra de actividad del IDE, haz clic en Explorador () y, luego, selecciona templates/index.html.
La plantilla HTML de esta app es muy simple.
En la barra de actividad del IDE, haz clic en Gemini Code Assist () y, luego, ingresa la siguiente instrucción:
Make this HTML template look better
Gemini Code Assist actualizará el código para mejorar el aspecto de la página de entrada de la app.
Para aceptar los cambios, en el panel de código dentro de Gemini Code Assist, haz clic en Diff with Open File () y, luego, en Aceptar.
Regresa a la pestaña del navegador de la app Roman Numerals y haz clic en Actualizar.
La app debería verse mejor. En este ejemplo, el diálogo está centrado en la página y se agregaron colores.
Nota: Es posible que los cambios realizados por Gemini Code Assist se vean diferentes para ti.
En la barra de actividades del IDE, haz clic en Explorador () y, a continuación, en templates/convert.html.
En la barra de actividad del IDE, haz clic en Gemini Code Assist () y, luego, ingresa la siguiente instrucción:
Make the convert.html template look similar to the index.html template
Gemini Code Assist actualizará la plantilla de resultados para que coincida con la plantilla de índice.
Para aceptar los cambios, en el panel de código dentro de Gemini Code Assist, haz clic en Diff with Open File () y, luego, en Aceptar.
Regresa a la pestaña del navegador de la app Roman Numerals, ingresa 45 y, luego, haz clic en Enter.
La nueva página de resultados debe coincidir con el estilo de la página de índice:
Para verificar este objetivo, haz clic en Revisar mi progreso.
Usar Gemini Code Assist para mejorar el diseño visual de tu app
Finalice su lab
Cuando haya completado su lab, haga clic en Finalizar lab. Qwiklabs quitará los recursos que usó y limpiará la cuenta por usted.
Tendrá la oportunidad de calificar su experiencia en el lab. Seleccione la cantidad de estrellas que corresponda, ingrese un comentario y haga clic en Enviar.
La cantidad de estrellas indica lo siguiente:
1 estrella = Muy insatisfecho
2 estrellas = Insatisfecho
3 estrellas = Neutral
4 estrellas = Satisfecho
5 estrellas = Muy satisfecho
Puede cerrar el cuadro de diálogo si no desea proporcionar comentarios.
Para enviar comentarios, sugerencias o correcciones, use la pestaña Asistencia.
¡Felicitaciones!
En este lab, aprendiste a realizar las siguientes tareas:
Crear un entorno de desarrollo de apps basado en la nube con Cloud Workstations
Usar Gemini Code Assist para explicar el código
Generar pruebas de unidades con Gemini Code Assist
Darle instrucciones a Gemini para mejorar el aspecto de una app
Usar Gemini Code Assist para que el código sea más legible
Usar Gemini Code Assist para agregar comentarios al código en inglés o en otro idioma
Copyright 2024 Google LLC. Todos los derechos reservados. Google y el logotipo de Google son marcas de Google LLC. El resto de los nombres de productos y empresas pueden ser marcas de las respectivas empresas a las que están asociados.
Los labs crean un proyecto de Google Cloud y recursos por un tiempo determinado
.
Los labs tienen un límite de tiempo y no tienen la función de pausa. Si finalizas el lab, deberás reiniciarlo desde el principio.
En la parte superior izquierda de la pantalla, haz clic en Comenzar lab para empezar
Usa la navegación privada
Copia el nombre de usuario y la contraseña proporcionados para el lab
Haz clic en Abrir la consola en modo privado
Accede a la consola
Accede con tus credenciales del lab. Si usas otras credenciales, se generarán errores o se incurrirá en cargos.
Acepta las condiciones y omite la página de recursos de recuperación
No hagas clic en Finalizar lab, a menos que lo hayas terminado o quieras reiniciarlo, ya que se borrará tu trabajo y se quitará el proyecto
Este contenido no está disponible en este momento
Te enviaremos una notificación por correo electrónico cuando esté disponible
¡Genial!
Nos comunicaremos contigo por correo electrónico si está disponible
Un lab a la vez
Confirma para finalizar todos los labs existentes y comenzar este
Usa la navegación privada para ejecutar el lab
Usa una ventana de navegación privada o de Incógnito para ejecutar el lab. Así
evitarás cualquier conflicto entre tu cuenta personal y la cuenta
de estudiante, lo que podría generar cargos adicionales en tu cuenta personal.
En este lab, desarrollarás una app con la asistencia de Gemini en un IDE.
Duración:
18 min de configuración
·
Acceso por 90 min
·
90 min para completar