7 votes

Création d'une interface de pagination de console de type "less" pour la base de données pysqlite3

Je voudrais ajouter des capacités interactives à une application CLI python que j'ai écrite et qui stocke des données dans une base de données SQLite3. Actuellement, mon application lit un certain type de fichier, l'analyse, place les données d'analyse dans la base de données et renvoie les enregistrements formatés vers stdout (que je dirige généralement vers un fichier). Il y a environ un million d'enregistrements dans ce fichier. Idéalement, j'aimerais éliminer complètement la situation du fichier texte et simplement boucler après la partie "analyse et parse", en affichant un écran d'enregistrements, et en permettant à l'utilisateur de les parcourir et d'entrer des commandes qui modifieront les enregistrements. Je sais comment faire la partie backend.

Est-ce que quelqu'un peut suggérer un bon point de départ pour créer ce frontal de pager, soit directement dans la console (comme le pager "less"), soit par le biais de ncurses, soit par un autre système ?

2voto

nosklo Points 75862

Vous voudrez peut-être jeter un coup d'œil à urwid . Il s'agit d'une bibliothèque d'interface utilisateur de console pour Python. Le site exemples devrait être plus que suffisant pour vous convaincre que c'est ce que vous voulez, si vous voulez vraiment opter pour une interface utilisateur de type console de texte.

J'utiliserais quelque chose comme pygtk à la place.

2voto

Eric Points 927

Après avoir cherché un peu, j'ai découvert que moins et d'autres pagers utilisent en fait malédictions . Lorsque j'ai pensé aux malédictions, j'ai toujours imaginé une interface à boîte bleue avec des menus et une interaction avec la souris. Il s'agit d'extensions de bibliothèque pour curses, qui offrent exactement la fonctionnalité de base de sélection et de contrôle d'édition des terminaux que je recherche.

Tutoriel sur la programmation de Curses en Python

Programmation de curses avec Python

En arrière-plan, lorsque l'utilisateur tente de déplacer le curseur au-dessus ou au-dessous des enregistrements actuellement affichés, je demanderai à sqlite d'aller chercher le prochain ensemble approprié d'enregistrements à afficher.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X