Construye una aplicación de línea de comandos en Python paso a paso con Platsy Ventas: desde usar un comando propio y help, hasta crear y listar clientes, con una arquitectura clara de lógica, persistencia e interfaz CLI. Aprenderás el punto de entrada en Python, el manejo de listas y a resolver errores típicos en la terminal.
¿Qué es Platsy Ventas y cómo se usa la CLI?
Platsy Ventas es una app de consola para clientes, ventas, inventarios y reportes. Se estructura como muchas apps profesionales: capa de lógica, capa de persistencia y capa de interacción con usuario mediante interfaz de línea de comandos. La ejecución ideal no es “python archivo.py”, sino un comando propio abreviado, por ejemplo “PB”, porque en CLI se usan abreviaciones para escribir menos.
¿Cómo consultar help y entender opciones, comandos y argumentos?
Escribe help para ver “cómo utilizarte”.
Estructura: nombre del comando, luego opciones, luego comandos, luego argumentos.
Subcomando: clients con help muestra acciones disponibles.
Acciones: crear, borrar, ver lista y actualizar.
Ejecución de listado: “platsi ventas clients list” para ver clientes existentes.
Campos mostrados: ID, nombre, compañía, email y posición.
Creación: “platsi ventas clients create” solicita nombre, compañía, email y posición; luego aparece en list.
¿Cómo crear el punto de entrada en Python y gestionar clientes?
En un archivo llamado “main.py” se define el punto de entrada con “if name == 'main':”. Se usa pass como marcador cuando el bloque queda vacío, ya que Python depende de la indentación (a diferencia de lenguajes con llaves curly braces).
¿Cómo iniciar el script con pass y luego manejar la lista?
# main.pyif __name__ =='__main__':# punto de entradapass
“if name == 'main':” indica dónde comienza a ejecutarse el programa.
pass evita errores de bloque vacío mientras se construye la lógica.
Para manejar clientes, se inicia una lista y se añade un nombre usando concatenación con “+=”.
# main.pyif __name__ =='__main__': clientes =['Pablo','Ricardo'] clientes +=['David']# se concatena una lista con un nuevo elementoprint(clientes)# salida: ['Pablo', 'Ricardo', 'David']
Lista inicial: “Pablo” y “Ricardo”.
Añadir con “+=” mantiene la idea de concatenación aprendida.
Impresión final confirma “Pablo, Ricardo y David”.
¿Qué errores comunes aparecen y cómo resolverlos en la terminal?
Trabajando en CLI, es normal encontrar errores de rutas y archivos. Aquí lo esencial para corregir rápido.
¿Cómo solucionar “no existe el archivo” y organizar el proyecto?
Si aparece que el archivo no existe, revisa la ruta real del archivo.
Usa pwd para saber en qué directorio estás.
Mueve “main.py” al directorio del proyecto correcto y vuelve a ejecutar.
Para crear archivos desde la terminal: utiliza touch seguido del nombre del archivo.
Consejo de práctica: sube el tamaño de letra en la terminal para leer cómodamente.
¿Por qué usar abreviaciones en comandos como “PB”?
En CLI se prioriza la rapidez al escribir.
Un alias como “PB” para “Platsy Ventas” reduce tecleo en tareas repetitivas.
Mantén nombres cortos y consistentes en tus comandos.
¿Te gustaría ver más ejemplos de clients create, list o update aplicados a tu propio flujo? Comparte tu caso y lo exploramos juntos.
Una buena práctica de estudio en plataformas es acompañar todo conocimiento con un libro, mi recomendación es Python para todos
de Raúl González Duque que lo pueden encontrar en Google, Saludos y feliz aprendizaje
Muchas gracias por tu aporte
Respaldo la recomendación, muy buen libro.
Tienes dudas sobre porque es necesario poner
if __name__ =='__main__':
Esto es porque hay dos formas de ejecutar un programa de python, ejecutándolo directamente y ejecutándolo desde otro programa usando "import"
entonces cuando tu pones en otro código
importMi_Programa.py
y tu no pusiste " if __name __ == '__main __': " , se va a ejecutar el programa que hiciste en Mi_Programa.py y después de que termine de ejecutarse se ejecutara el código en el que importaste el programa.
Sin embargo si sí colocaste " if __name __ == '__main __': " entonces todo lo que este dentro de ese bloque de código no se ejecutara y así podrás usar funciones especificas de ese programa sin que se ejecute el programa si no solo la función.
Para una explicación mas completa: https://es.stackoverflow.com/questions/32165/qu%C3%A9-es-if-name-main
Gracias por el aporte (y), me quitaste las dudas.
Muy buen aporte, en la clase no quedaba del todo claro
Seria bueno que ordenen bien estos videos porque me estan confundiendo, en este video el profesor dice exactamente esto: " ustedes ya saben concatenar diferentes strings" estamos en el video 7, pero los strings es tema del video 12, tambien en el codigo que pone el profesor asume que ya sabes el “if” y eso es parte del video numero 10, pasa lo mismo con identacion, pass, etc etc, tambien asume que ya sabemos lineas de comandos( esto creo que si es basico saber para este curso pero creo que no caeria mal enseñarlo, creo no demoraria mucho tiempo en mostrarlo), creo que se asume mucho, soy principiante pero estoy seguro que esto no es complicado pero la manera de como estan ordenados los videos dificultan el aprendizaje!
Marco, quizas te convenga arrancar por el curso de programacion básica que está acá tambien, tiene un poco de html, javascript y no se que mas, pero está mucho mejor explicado.
Yo creo que uno de los principales problemas de platzi es que no tiene instructores que den clases básicas realmente BASICAS. como toda persona de sistemas, se olvidan o dan por aludido que el que está del otro lado ya sabe que es un string o que significa concatenar.
cuando se hablo de los operadores y los tipos de datos ahi se vió que pasa cuando usas el operador (+) con cadenas y con números, podrias ver los videos de nuevo para recordarlo un poco,
Muy mal comenzar a explicar usando vim. Los que vienen de cero a aprender python van a confundirse con ese editor.
En este nuevo curso de Python, al parecer, mejoraron muchas cosas (digo al parecer, porque aún no lo veo completo), pero otras no. Mismos errores de improvisar el curso sobre la marcha.
Si quieren ser desarrolladores de python, lo mejor es que vayan olvidándose deque todo es con una GUI y con windows, en el mundo de la tecnología (y más en el backend) se usan sistemas unix-like como Linux, OSX(Mac) o BSD, y muchas cosas se hacen por una terminal, así como se ve acá en el curso, si se sieten perdidos, deberían empezar por aprender Linux, el mundo de la programación corre bajo Linux v(servers, modems y demás) Platzi tiene un excelente curso de ello 😉
Es cierto. Hay mychos quejandose por no poder usar python en windows, no saber usar el command line. En lugar de criticar deberian aprender, y si es posible despegarce de windows
Si, no sean cobardes, a borrar windows e instalar ubuntu!
Aquí tenéis el código: Comentado y con una sintaxis más útil (Utilizando una lista en vez de un string)
clients =['Pablo','Ricardo']# Only use the import file/s when we request it
if __name__ =='__main__': clients.append('David') # Add the string 'David to the list
# Join the elements of the list using the string ', 'print(', '.join(clients)) # Pablo,Ricardo,David```
IMPORTANTE! PARA LOS AVENTUREROS QUE QUIEREN UTILIZAR LA TERMINAL DE UBUNTU EN WINDOWS. Y PODER SEGUIR BIEN EL CURSO.
Entren al directorio:
cd ../../mnt/c/Users/NOMBREDEUSUARIO/
Entren a la carpeta que gusten dentro de sus archivos.
cd /Desktop/CursoPlatziPython
Crear archvio:
touch main.py
Abrir con vim
vim main.py
5.Realizar el curso!
PD:si bien los videos parecen desordenados, o el profesor dice palabras bastante avanzadas, guiarse con los slides o con la clase "1" del curso, donde esta la teoría.
Si usan vs code igual codean:
code .
y le abrir un remoto a su vs code de windows
Este inicio en Python esta muy confuso en verdad, tengo experiencia programando y este salto de vídeos me hacen cuestionar este curso especifico. Ordenen los vídeos o hagan una linea de tiempo que todos puedan seguir porque en la clase pasada se decía que ya sabíamos funciones, clases, etc, etc... y acá entramos a unas cosas anteriores a esa, es... raro, se siente mucho el salto entre vídeos.
deberías de revisar el archivo de conceptos básicos al inicio del curso, lo único "raro" que miro en este vídeo es que no explico los comando del editor de texto vim para los nuevos en el curso, pero vamos! creo que es algo básico como programador investigar un poco del editor de texto que utilizaremos antes de empezar a codificar.
adjunto esta pagina donde es una introducción al editor de texto vim
La introducción al proyecto es muy confusa debido a que dan muchas temas por sentado que para alguien que no esté familiarizado con el Python puede ser confuso. Deberían de replantear la temática y metodología del curso.
La verdad se me esta complicando mucho seguirle el hilo al curso, y no es por que no sepa nada de programación. Tengo experiencia en C# , C ++ , SQL , pero no logro seguirlo muy bien, primero que nada el IDE que utiliza como lo uso ? el unico que me ayudo a llegar hasta acá fue Atom, buscando monton por internet logre que los codigos que pusieron en los comentarios de los videos me funcionaran ... Pasando esto , en este Capitulo puntual , arranca hablando de un listado de ventas poniendo pv--help, y todo lo que sigue como si ya tuvieramos un archivo con esta info el que esta mirando en el ejemplo, yo no la encontre ni el GitHub ni en archivo aca al lado de comentarios , o estoy muy perdido yo o no esta explicado muy claro o ordenadamente, sin animos de ofender es solamente para saber si yo estoy mal ...
Ya lo solucione, lo de la lista de clientes sigo sin saber de donde la saca...
Pero el resto estoy utilizando como terminal Cmder , y para crear archivos y moverme por las carpetas voy a atom que ahí es muy sencillo digamos ! Debe haber maneras más faciles pero por ahora con esto me manejo bien jeje ! saludos !!! Utilizo Windows 10 y al parecer el Cmder Emula la terminal de Unix por eso me funcionan los codigos =) Saludos!!!
Que tal amigo! mira el nombre del vídeo se llama "Presentación del Proyecto", lo que hace al principio de pv -help ya es el proyecto que desarrollaremos conforme avanza el curso, el -help es solo un comando de la terminar para ver mas detallado que es pv.
El editor de texto se llama vim, es muy bueno pero un poco complicado al principio.
Gracias a los comentarios estoy entendiendo el curso.
buenas estoy entendiendo pero a la fuerza porque esta muy confuso el curso, al como inicia y con el video pasado que dices cosas ilogicas.
Hola Iván, la clase que mencionas se trata de un ejemplo sobre cómo Python es utilizado en el mundo real. Si no lograste entenderla a la perfección no te preocupes, ya que durante las clases del curso aprenderás todo lo necesario y más para ello ;)
Yo no entiendo porque es necesario usar la declaración
if __name__ =='__main__':
Digamos, en el ejemplo del profe, si no la usamos, tenemos:
Esto está muy confuso, en el vídeo de presentación del proyecto en qué momento se empezó a crear todos esos archivos y comandos. Ni descargando el proyecto de GitHub me funciona el comando pv --help, por favor, ayuda con esto que en realidad quiero seguir progresando en el curso, pero está bastante confuso
Los archivos como pv.py se van creando a medida que se desarrolla el curso, esta clase presenta las características que tiene el proyecto que se va a desarrollar, sigue el curso y vas a ir entendiendo todo poco a poco.
Me sale este mensaje por favor alguien me puede ayduar
C:\proyectopython>python turtle.py
Traceback (most recent call last):
File "turtle.py", line 1, in <module>
import turtle
File "C:\proyectopython\turtle.py", line 3, in <module>
window = turtle.Screen()
AttributeError: 'module' object has no attribute 'Screen'
AttributeError: ‘module’ object has no attribute ‘Screen’, el error te está diciendo que "Screen()" no es parte del módulo "turtle", te recomiendo que revises el nombre de los metodos.
¿Se puede entender el la linea " if__name__ == 'main' :" como el int main() de c++ ?
Así es Santiago, pero en Python no es obligatorio ponerlo, pero es una mejor manera en que se ejecute el código.
si alguien desea el libro de Python para todos de Raúl Gonzáles Duque puede responder este post y yo podría mandárselo, pero si quieres hacerlo por ti mismo aquí esta el link donde yo lo descargue, (esta en pdf)