Escribir software nunca es fácil. Escribir software que atraiga a los usuarios exige interactuar con ellos.
¿Obtiene datos relevantes que pueda poner al servicio de los usuarios? Python - el lenguaje más buscado para crear software según la última encuesta de Stack Overflow- está aquí para ayudarte. En este post, le mostraremos cómo utilizar el... Función de entrada en Pythonincluyendo cómo obtener información sin procesar del teclado.
¿Qué es Python?
Python es un lenguaje de programación de propósito general que es ampliamente utilizado tanto por desarrolladores expertos como principiantes y es conocido sobre todo por su énfasis en la legibilidad. De hecho, la mayoría de las funciones y métodos de Python hacen exactamente lo que dicen.
El código Python es la base de muchas aplicaciones de software modernas alojadas en la nube. También es uno de los lenguajes más utilizados para desarrollar algoritmos de ciencia de datos. La base de datos NoSQL Couchbase está construida desde cero para soportar Python, y si has estado trabajando en el lenguaje por un tiempo, es posible que aún necesites... actualización de Python 2 a Python 3.
Afortunadamente, todas las versiones de Python permiten capturar la entrada del usuario. Revisemos nuestras opciones.
Cómo utilizar Python para solicitar entradas
Si ha creado una aplicación interactiva, siempre querrá pedir a los usuarios que introduzcan un número entero o algún otro dato, como un nombre, un título o un tema.
Piense en una página de contacto estándar. Los usuarios que quieren ponerse en contacto necesitan una forma de introducir la información pertinente.
Python tiene dos funciones incorporadas para capturar la entrada del usuario:
entrada()que evalúa y convierte la entrada de Python a un formato de cadena y luego la devuelve a una variable que puede imprimirse en pantalla como salida.raw_input()que es el comando en Python 2 para leer la entrada exactamente como se escribe en el teclado, convirtiendo los resultados en una cadena que se devuelve a una variable.
Como funciones de Python, entrada() y raw_input() seguir el orden de las operaciones y pausar la aplicación hasta que los usuarios completen las indicaciones. Utilícelas sólo para capturar entradas críticas. Molestar a los usuarios con preguntas que parecen opcionales puede llevarles a abandonar la aplicación en lugar de soportar la molestia.
Uso de Python en Couchbase
A continuación se explica cómo aprovechar la entrada de Python para crear una aplicación de solicitud de documentos NoSQL sencilla e interactiva.
Este ejemplo permite a un usuario introducir un ID de documento, que luego solicita el documento de Couchbase y luego devuelve los resultados a la pantalla.
Por el bien de este artículo, vamos a utilizar Couchbase Server en el entorno de ejecución - intente Nube Couchbase para empezar fácilmente.
Una vez que hayas configurado Couchbase Server, instala las librerías Python utilizando el comando pip mando:
|
1 |
pip install couchbase |
Tus scripts Python incluirán entonces todos los ajustes necesarios para conectarse, incluyendo el nombre del host, el nombre del bucket, el usuario y la contraseña. En este caso, el script utiliza el método viaje-muestra cubo de datos de muestra y la información del usuario administrador principal. La base de datos se ejecuta en localhost.
En este ejemplo, el script solicitará el ID del documento y lo utilizará como parte de la secuencia de comandos consiga para solicitar un documento específico. Toda esta lógica forma parte de una función:
|
1 2 3 4 5 6 |
def getdoc(): docid = input("Enter document ID: ") try: result = cb.get(docid).value for item in result: print(item+":",result[item]) |
El script en ejecución solicita al usuario una respuesta. En este ejemplo, utilizamos el documento denominado aerolínea_10 y la salida a la consola:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
C:\code> python finddoc.py Enter document ID: airline_10 Document ID: airline_10 ------------------------ callsign: MILE-AIR country: United States iata: Q5 icao: MLA id: 10 name: 40-Mile Air type: airline |
Puede que notes que la salida anterior es un poco más elegante que el ejemplo de código básico. Hay más sobre esto en la sección de mejores prácticas a continuación.
Buenas prácticas para recoger las aportaciones de los usuarios
- Comprueba la sanidad de la entrada: Compruebe si la entrada estaba vacía, era demasiado corta, demasiado larga o el tipo de datos era incorrecto. En el ejemplo, no nos preocupamos demasiado, ya que la propia base de datos detectará cualquier error por nosotros.
- Errores de captura: ¿Qué ocurre cuando un usuario introduce un valor que hace que falle el resto de la aplicación? Utiliza Python
pruebeyexceptopara manejar las excepciones y devolver información significativa al usuario. Por ejemplo, si el usuario introduce un ID de documento incorrecto, estas cláusulas le hacen saber que el ID no existe. Si, además, teclea una basura aleatoria, le dirá que tampoco es un ID de documento válido.
1234try: ...except exceptions.DocumentNotFoundException:print("Document not found: "+docid)pass - Formatee la salida para facilitar la lectura: Si la aplicación va a mostrar datos, añada espaciado y algo de estructura para que resulte menos abrumador para el usuario. El siguiente script añade algunas tabulaciones entre el nombre del campo y los valores. También limita la salida impresa a 50 caracteres.
12for item in result:print(item+":\t\t",str(result[item])[:50]) - Utiliza bucles para mantener la interactividad: En lugar de hacer que el usuario vuelva a ejecutar el script una y otra vez, añada alguna lógica que le ayude a intentarlo de nuevo. En este caso, un mientras que que llama continuamente al bucle
getdoc()hasta que el usuario pulse CTRL+C. Esa función añade una nueva línea para que sea legible y vuelve a pedir la entrada.
12while 1:getdoc()
123456789101112Enter document ID: airline_10Document ID: airline_10------------------------callsign: MILE-AIRcountry: United Statesiata: QSicao: MLAid: 10name: 40-Mile Airtype: airlineEnter document ID:
Pruebe el ejemplo de código completo que figura a continuación y realice algunas búsquedas de documentos como: aerolínea_10, hito_10019o hotel_10025 para ver cómo el formato y la interacción facilitan las cosas al usuario.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
from couchbase.cluster import Cluster, ClusterOptions, QueryOptions, PasswordAuthenticator from couchbase import exceptions CONNSTR = "couchbase://localhost" BUCKET = "travel-sample" authenticator = PasswordAuthenticator("Administrator", "Administrator") cluster = Cluster(CONNSTR, ClusterOptions(authenticator)) cb = cluster.bucket(BUCKET) # cb_coll = cb.collection("default") # CB 7+ with collections def getdoc(): docid = input("\nEnter document ID: ") try: result = cb.get(docid).value # result = cb_coll.get(docid).value # CB 7+ with collections print("Document ID: "+docid) print("-------------------------") for item in result: print(item+":\t\t",str(result[item])[:50]) except exceptions.DocumentNotFoundException: print("Document no found: "+docid) pass while 1: getdoc() |
Conclusión
La entrada del usuario puede ser relativamente fácil de conseguir cuando se trabaja en Python. Aprendimos a aprovechar el entrada() y raw_input() para traer datos a Couchbase y servir mejor a los usuarios. También aprendimos un puñado de buenas prácticas y lo que hay que evitar cuando se construye software interactivo en la nube.
Python es ya uno de los lenguajes más populares y deseados para desarrollar software moderno alojado en la nube. Aprender a aprovechar Python para tu propio trabajo puede ser bueno para tu carrera. El sencillo enfoque de desarrollo de Python también puede ser bueno para tu negocio.
¿Está preparado para dar el siguiente paso en su viaje hacia la computación en nube empresarial? Pruebe gratis Couchbase hoy mismo.