[Tutor] database applications with Python - where to start

Barnaby Scott bds at waywood.co.uk
Thu May 5 15:03:30 CEST 2005


Hi, this is one of those difficult questions about where to start!

I want to create a book-keeping/accounting application for my own use
1. because I can't find any that suits me, and
2. because I want to improve and extend my knowledge of Python.

Clearly this is going to be a database application - the trouble is, that
despite reading loads of stuff (including previous posts here on the topic),
I get a Catch-22 feeling that I need to be an expert with 'the big picture'
before I can even take my first stumbling steps towards becoming that
expert! Also the trouble with reading stuff on the web is that you don't
know who is an out-on-a-limb lunatic, and who is talking sense backed up
with concrete experience. And of course, quite understandably, everyone
wants you to use *their* module/driver/database/whatever.

Here's where I am: I have a reasonable grasp of Python (but realise that I
have a lot still to learn). I have written database applications before, but
only using MS Access (both with its own Jet database and with
MSDE/SQL-Server) - no major boasts here, let's just say they *worked*! The
thing is, Access rather pampers you with visual tools for doing many aspects
of the work, and even a neat little environment to manage your code.

Now I want to move on, and use Python, probably with a RDBMS. I haven't
chosen the database - difficult again, because although this will be a small
application, it is accounting data, so its integrity is paramount, and
certain inviolable constraints must be built in at a very fundamental level
(the data needs protection from my code!!). I will also obviously need a UI,
probably a GUI (but it would be nice to keep my options open to do a web UI
version at some point).

So here's the thing. Even though I have quite a clear idea of what the
database schema will look like, and what the UI will *do* (even though I
don't know what it will look like), I'm having real trouble understanding
how/where to start. I'm tempted to try to put together a 'kit' of tools (as
visual as possible) to emulate what I'm used to - but is this a good idea?
and if so, which tools? What on earth is my application's model going to
look like? should I get involved with object-relational mapping? how much
work should I delegate to the RDBMS, and how much logic should I code in
Python? Should I even be thinking radically and ditch the RDBMS in favour of
something like a 'Prevalence Layer' that I have read about? what should
inform these decisions?

I just don't know where to start! A book perhaps, but then, which one? Or
maybe an example app for me to pick apart and learn from?

Sorry it is such a vague question, but any pointers gratefully received.



More information about the Tutor mailing list