Hay dos alternativas:
FakeStoreAPI - Que ya hemos utilizado
- https://fakestoreapi.com/docs
FakeAPI de
- https://fakeapi..com/en/about/introduction/
Me parece que debe colocar la palabra Bearer antes del token, dejo como lo hice yo.
def get_products(token):
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'charset': 'utf-8',
'Authorization': f'Bearer {token}'
}
try:
response = requests.get('https://fakestoreapi.com/products', headers=headers)
if response.status_code == 200:
return response.json()
else:
raise Exception('Error al intentar consultar productos')
except requests.exceptions.RequestException as err:
print("Error: {}".format(err))
Mi solución sin ver la solución del profesor ...
new_list = []
def magic_function(list):
global new_list
for item in list:
temp = item[::-1]
new_list.append(temp)
return new_list
if __name__ == '__main__':
list = ["Hello World", "Hello Python", "1 2 3 4 5 6 7 8"]
print(magic_function(list))
Salida:
['dlroW olleH', 'nohtyP olleH', '8 7 6 5 4 3 2 1']
En el sitio web de github de flake8, pueden verificar el tag del hook para trabajar.
https://github.com/PyCQA/flake8/tags
No es necesario bajo mi punto de vista el doble while, comparto mi solición.
import os
# Definimos variables globales
run_program = True
todo_list = []
# Función que limpia la consola
def clean():
os.system('cls' if os.name == 'nt' else 'clear')
# Función para mostrar el menu
def show_menu_options():
print()
print('Por favor seleccione una opción: ')
print()
print('[1] Mostrar las tareas')
print('[2] Crear un tarea')
print('[3] Marcar como realizada una tarea')
print('[4] Borrar una tarea')
print('[5] Salir')
print()
# Función para mostrar la lista
def show_todo_list(update=False):
global todo_list
clean()
print()
print("---------------------------------------------------------------")
print('Lista de tareas: ')
print()
if len(todo_list) != 0:
for todo in todo_list:
print(f' - Tarea [{todo_list.index(todo) + 1}]: {todo}')
else:
print(f'No hay tareas pendientes!')
print()
print("---------------------------------------------------------------")
print()
if not update:
input('Presione ENTER para continuar ...')
# Función para guardar tareas en la variable 'todolist'
def create_todo_list():
global todo_list
clean()
print('Crear una nueva tarea: ')
print()
todo = input('Ingrese la tarea: ')
todo = todo.strip()
todo_list.append(todo)
show_todo_list()
# Función para marcar como realizada la tarea
def update_todo_list():
global todo_list
clean()
print('Actualizar nueva tarea: ')
print()
show_todo_list(update=True)
print()
todo_id = int(input("Ingrese el [id] de la tarea que quiera marcar como completa: "))
todo_list[todo_id - 1] = todo_list[todo_id - 1] + " ✅"
show_todo_list(update=False)
# Función para eliminar las tareas
def delete_todo_list():
global todo_list
clean()
print('Eliminar una tarea: ')
print()
show_todo_list(update=True)
print()
todo_id = int(input("Ingrese el [id] de la tarea que quiera eliminar completa: "))
tarea = todo_list[todo_id - 1]
del todo_list[todo_id - 1]
print()
print(f'Tarea [{tarea}] eliminada correctamente [✅]')
print()
input()
show_todo_list(update=False)
def main():
global run_program
# Limpiamos la consola
clean()
# Mostramos el mensaje de bienvenida
print('.: Welcome to a Python To do list :.')
# while
while run_program:
clean()
show_menu_options()
option = int(input('Ingresa una opcion: '))
match option:
case 1:
show_todo_list()
case 2:
create_todo_list()
case 3:
update_todo_list()
case 4:
delete_todo_list()
case 5:
run_program = False
clean()
print()
print('Gracias por usar este programa, hasta luego! 👌👌')
print()
case _:
clean()
print('Error: Ingresa una opción valida! ❌')
input('.: Pulsa enter para continuar .... :.')
if __name__ == '__main__':
main()
El curso abarca la configuración de Laravel en versiones 9 o menores, pero ya la versión de la Laravel a hoy en la 10, como saben se cambio de Laravel mix a vote, entonces dejo esta guía que explica como trabajar Bootstrap con vite.
Guía para trabajar Bootstrap con Vite https://devdojo.com/thinkverse/how-to-use-bootstrap-with-laravel-and-vite
Si tienen instalado la versión PHP 8.2 o superior se van a encontrar con un problema llamado "deprecated: creation of dynamic property", la solución fácil es bajar a la versión PHP 8.1.
https://php.watch/versions/8.2/dynamic-properties-deprecated
Quiero dejar esta forma de manejar la función count dentro del mismo ciclo for, seria la siguiente.
$names = [
'David de Gea',
'Lisandro Martinez',
'Bruno Fernandez',
'Cristhiano Ronaldo',
'Marcus Rashford'
];
// For
for($i=0, $total = count($names); $i < $total; $i++) {
echo $names[$i] . "\n";
}
Resultado
php .\index.php
David de Gea
Lisandro Martinez
Bruno Fernandez
Cristhiano Ronaldo
Marcus Rashford
Propiedad grid-colunm-gap no existe fue reemplazado por gap que es un shorthand
Excelente este formato, el curso anterior de HTML5 era interminable, pero este esta muy bien organizado. felicitaciones