2010-07-01 3 views
2

Je n'ai jamais écrit de programme (même si j'ai déjà utilisé Access et suis familier avec les concepts de POO) et j'ai décidé de relever le défi de m'écrire un programme de base de données à usage domestique . (Il va garder une trace de nos finances et être personnalisé selon notre façon de faire les choses.) J'ai à peu près décidé d'utiliser Python et SQLite, mais cela laisse toujours d'autres décisions à prendre. Je pense que je devrais obtenir des conseils expérimentés et aider à choisir parce que je ne sais rien sur les avantages et les inconvénients (pour ma situation) de ce qui est là-bas.Débutant ayant besoin de conseils expérimentés pour des choix importants

Je sais que je vais avoir besoin de rapports de quelque sorte (quelque chose de similaire aux rapports Access serait idéal). Aussi, j'aurai besoin (le moyen le plus simple) de créer une interface utilisateur. Quels sont les logiciels que je (débutant total) devrait regarder à ces fins? Et y a-t-il d'autres outils dont j'ai besoin à part ceux-là?

Merci beaucoup pour votre aide.

Mise à jour. Existe-t-il un formulaire de glisser-déposer et des outils de développement de rapports pour Python/Sqlite (similaire à Access)? Qu'en est-il des opinions sur Netbeans IDE et Swing UI pour moi?

+0

Lorsque vous dites que vous n'avez jamais écrit un programme, ne voulez-vous pas dire "Hello World"? – Wilduck

+0

Pas exactement. En classe, nous avons écrit des programmes de console C++ très basiques. Et j'ai fait du codage VBA dans Access. Mais, jamais rien en Python, ou avec une interface utilisateur (à l'exception de l'interface utilisateur d'Access), ou autonome à partir de zéro, et en dehors des conditions de classe et des conseils (sauf les choses Access). – CChriss

Répondre

6

Tkinter est un framework d'interface utilisateur pour les débutants. Je recommande fortement d'utiliser cela, si cela semble assez puissant pour combler vos besoins.

Comme il semble que vous êtes assez inexpérimenté dans la mesure où la programmation va, voici ce que je recommande:

1) Apprenez à faire IO de base, et surtout apprendre la mise en forme de chaîne de Python. C'est super utile, et probablement inestimable dans votre situation.

2) Apprenez à faire des requêtes SQL avec SQLite - attachez vos compétences Python IO à SQLite.

3) Apprenez le modèle d'objet de Python - comment il s'insère dans le concept de POO, et surtout comment vous pouvez faire un objet pour s'adapter à votre modèle de données. Apprenez comment cela peut fonctionner entre l'IO de Python et l'IO SQLite. 4) Maintenant que vous êtes à l'aise pour stocker et stocker des données dans une base de données SQLite et que vous pouvez manipuler des objets confortablement, il est temps de commencer à apprendre sur la programmation événementielle, les boucles principales et les interfaces graphiques. Tkinter est assez simple et Effbot a une assez bonne information sur Tkinter.

5) Réunissez toutes ces compétences et connaissances et faites-vous un programme. Vous devrez probablement revenir en arrière et vous rafraîchir, réapprendre ou apprendre de nouvelles choses à propos de 1-4 tout au long du chemin. N'ayez pas peur de re-facteur de code - si il semble que quelque chose est une douleur de travailler avec/autour, vous faites probablement quelque chose de mal, ou tout simplement ne pas voir une solution juste en face de votre visage. Dans certains cas, c'est de l'ignorance, dans d'autres, vous regardez votre programme depuis trop longtemps et vous êtes peut-être marié à l'idée de le faire de la «mauvaise» manière. Si votre solution n'est pas simple, vous risquez de compliquer le problème.

6) Demandez de l'aide. Si vous êtes coincé, vous pouvez toujours demander ici, ou au python tutor mailing list. Il suffit de dire/montrer ce que vous avez fait, ce que vous attendez, et ce qu'il fait à la place. La plupart des pythonistes ont tendance à être plutôt utiles, et encore plus quand vous montrez que vous avez essayé d'y travailler vous-même.

De toute façon, HTH, et une bonne programmation!

* par super je veux dire, il a de bonnes caractéristiques, mais ce n'est pas très joli ou trop compliqué. De plus, il est livré en standard avec votre installation Python.

Par exemple, un simple programme de tkinter avec une étiquette et un bouton pourrait ressembler à ceci:

import Tkinter as tk 
# Initialize a new root window 
root = tk.Tk() 

# Create a label that belongs to the root window 
hello = tk.Label(root, text='Hello') 

# Create a button that belongs to root, and will make the program 
# quit when pressed 
goodbye = tk.Button(root, text='Goodbye', command=root.quit) 

# Use the pack manager to add the button and label to the root 
# Window - do NOT mix pack and grid managers - they don't play well 
hello.pack() 
goodbye.pack() 

# Enter the mainloop 
root.mainloop() 
+0

Merci pour l'excellente info. Tkinter est-il fait à partir de la ligne de commande ou y a-t-il un concepteur IDE/visuel que vous recommanderiez pour moi? Je suis à la recherche de la voie la plus facile du début au programme fonctionnel. – CChriss

+0

Je l'ai toujours fait depuis la ligne de commande. C'est assez simple de faire un programme. Je vais ajouter un court exemple de programme à ma réponse pour montrer ce que je veux dire. –

3

Un conseil si vous ne l'avez jamais fait aucune programmation avant est: petites étapes.

Ecrivez un petit programme qui extrait des éléments d'une base de données SQLite et les imprime simplement. Apprenez comment cela fonctionne et jetez-le. Faites de même avec la lecture de fichiers, créez une interface graphique simple et ainsi de suite avec tous les aspects que vous devez savoir pour votre programme. Une fois que vous connaissez les pièces, essayez de les assembler.

+1

Ecrire des programmes d'exemple super petits est la façon dont j'aime apprendre. Ecrire quelque chose de super petit: "hé, je peux me connecter à SQLlite", "Hey, je peux faire une requête!". "Hey, je peux obtenir des informations de l'utilisateur". Ensuite, construisez un plus grand programme à partir de là. – RyanWilcox

Questions connexes