Python web app. (advice sought)

D

Duncan Smith

Hello,
I find myself in the, for me, unusual (and at the moment unique)
position of having to write a web application. I have quite a lot of
existing Python code that will form part of the business logic. This
relies on 3rd party libraries (such as numpy) which would make porting
to e.g. IronPython difficult (I would imagine). I was thinking LAMP
(the P standing for Python, of course), particularly as I was originally
encouraged to go for open source solutions.

The application will provide some basic statistical analyses of data
contained in database tables and associated plots (R / matplotlib /
graphviz). There will also be some heavier duty Monte Carlo simulation
and graphical modelling / MCMC. The user(s) will need to be able to set
model parameters; maybe even tinker with model structure, so it will be
very interactive (AJAX?).

I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone. I get the impression that Turbogears
will require me to write more non-Python code, but maybe Plone is more
than I need (steeper learning curve?). Maybe Turbogears will lead to a
more loosely coupled app. than Plone?

The disconcerting thing is that others on the project (who won't be
developing) have started to talk about a LAMP back end with an IIS front
end, .NET, and the benefits of sharepoint. The emphasis is supposed to
be on rapid development, and these technologies are supposed to help.
But I have no real familiarity with them at all; just Python, C and SQL
to any realistic level of competence.

Any advice would be greatly appreciated. I have to do much of the
statistical work too, so I need to make good choices (and hopefully be
able to justify them so nobody else on the project makes inappropriate
choices for me). e.g. I don't mind learning Javascript if it doesn't
take too long. The physical server will initially be a multiprocessor
machine with several GB of RAM. But we also have a cluster (I have no
details, I only started the project a week ago). So any advice
regarding parallelisation would also be appreciated (or, in fact, any
useful advice / pointers at all). Thanks.

Duncan
 
T

Torabisu

Duncan said:
Hello,
I find myself in the, for me, unusual (and at the moment unique)
position of having to write a web application. I have quite a lot of
existing Python code that will form part of the business logic. This
relies on 3rd party libraries (such as numpy) which would make porting
to e.g. IronPython difficult (I would imagine). I was thinking LAMP
(the P standing for Python, of course), particularly as I was originally
encouraged to go for open source solutions.

The application will provide some basic statistical analyses of data
contained in database tables and associated plots (R / matplotlib /
graphviz). There will also be some heavier duty Monte Carlo simulation
and graphical modelling / MCMC. The user(s) will need to be able to set
model parameters; maybe even tinker with model structure, so it will be
very interactive (AJAX?).

I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone. I get the impression that Turbogears
will require me to write more non-Python code, but maybe Plone is more
than I need (steeper learning curve?). Maybe Turbogears will lead to a
more loosely coupled app. than Plone?

The disconcerting thing is that others on the project (who won't be
developing) have started to talk about a LAMP back end with an IIS front
end, .NET, and the benefits of sharepoint. The emphasis is supposed to
be on rapid development, and these technologies are supposed to help.
But I have no real familiarity with them at all; just Python, C and SQL
to any realistic level of competence.

Any advice would be greatly appreciated. I have to do much of the
statistical work too, so I need to make good choices (and hopefully be
able to justify them so nobody else on the project makes inappropriate
choices for me). e.g. I don't mind learning Javascript if it doesn't
take too long. The physical server will initially be a multiprocessor
machine with several GB of RAM. But we also have a cluster (I have no
details, I only started the project a week ago). So any advice
regarding parallelisation would also be appreciated (or, in fact, any
useful advice / pointers at all). Thanks.

Duncan

I was in a similar boat a while back, needing to make a decision on
what to use for our web development. I had worked with Plone
previously and found that for our needs it wasn't going to work. Our
web development was quite specific and didn't fit ideally into the
standard content management realm. I also looked at Django and
TurboGears, installing and working with each. I eventually went with
Django, and I've really enjoyed working with it. Was a personal choice
and I'm sure our development would have been as successful if I'd
chosen TurboGears.

If you want the strength of persistent layers, MVC, templating etc etc
but want to stay away from the heavier frameworks, another possibility
is http://webpy.org/. Very simple to implement, lightweight yet still
fairly full of features.
 
T

Tim Williams

I was in a similar boat a while back, needing to make a decision on
what to use for our web development. I had worked with Plone
previously and found that for our needs it wasn't going to work. Our
web development was quite specific and didn't fit ideally into the
standard content management realm. I also looked at Django and
TurboGears, installing and working with each. I eventually went with
Django, and I've really enjoyed working with it. Was a personal choice
and I'm sure our development would have been as successful if I'd
chosen TurboGears.

If you want the strength of persistent layers, MVC, templating etc etc
but want to stay away from the heavier frameworks, another possibility
is http://webpy.org/. Very simple to implement, lightweight yet still
fairly full of features.

Don't overlook Karrigell either, with a tiny learning curve its
always worth consideration, especially if you need rapid development
and a web server that will sit on top of your exising .py modules.

www.karrigell.com

hth :)
 
T

Torabisu

Tim said:
Don't overlook Karrigell either, with a tiny learning curve its
always worth consideration, especially if you need rapid development
and a web server that will sit on top of your exising .py modules.

www.karrigell.com

hth :)

Hmm, thanks for the link on Karrigell. Never heard of it till now,
quite nice...
 
M

Michele Simionato

Duncan said:
Hello,
I find myself in the, for me, unusual (and at the moment unique)
position of having to write a web application. I have quite a lot of
existing Python code that will form part of the business logic. This
relies on 3rd party libraries (such as numpy) which would make porting
to e.g. IronPython difficult (I would imagine). I was thinking LAMP
(the P standing for Python, of course), particularly as I was originally
encouraged to go for open source solutions.

The application will provide some basic statistical analyses of data
contained in database tables and associated plots (R / matplotlib /
graphviz). There will also be some heavier duty Monte Carlo simulation
and graphical modelling / MCMC. The user(s) will need to be able to set
model parameters; maybe even tinker with model structure, so it will be
very interactive (AJAX?).

I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone.

I assume it will be an application with few users and no particular
need for
security. Read PEP 333, use the wsgiref server which is in the standard
library
(starting from Python 2.5+), have a look at Paste and write your own
solution.
At the least this is the way I did it.

Michele Simionato
 
B

bruno.desthuilliers

Duncan Smith a écrit :
Hello,
I find myself in the, for me, unusual (and at the moment unique)
position of having to write a web application. I have quite a lot of
existing Python code that will form part of the business logic. This
relies on 3rd party libraries (such as numpy) which would make porting
to e.g. IronPython difficult (I would imagine). I was thinking LAMP
(the P standing for Python, of course), particularly as I was originally
encouraged to go for open source solutions.

The application will provide some basic statistical analyses of data
contained in database tables and associated plots (R / matplotlib /
graphviz). There will also be some heavier duty Monte Carlo simulation
and graphical modelling / MCMC. The user(s) will need to be able to set
model parameters; maybe even tinker with model structure, so it will be
very interactive (AJAX?).

I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone. I get the impression that Turbogears
will require me to write more non-Python code,
???

but maybe Plone is more
than I need (steeper learning curve?). Maybe Turbogears will lead to a
more loosely coupled app. than Plone?

Plone is nice for content management (well, it's a CMS, isn't it ?),
but I certainly wouldn't choose it for the kind off application you are
describing. A simpler, lighter MVC framework would be far more
appropriate IMHO. Turbogears may be a good choice, but you may also
want to have a look at web.py and Pylons.
The disconcerting thing is that others on the project (who won't be
developing) have started to talk about a LAMP back end with an IIS front
end, .NET, and the benefits of sharepoint.

My my my...
The emphasis is supposed to
be on rapid development, and these technologies are supposed to help.
But I have no real familiarity with them at all; just Python, C and SQL
to any realistic level of competence.

Then go for the simplest thing.

My 2 cents...
 
I

Istvan Albert

Duncan said:
I've had a look at Django, Turbogears and Plone, and at the moment I am
torn between Turbogears and Plone. I

Plone is not suited for the type of application you are building (as
others have pointed out in this thread).

Take a second look at TurboGears (or CherryPy for that matter). You
might have discounted Django a bit too soon. It has the best
documentation and it is the most consistent framework.

You might end up bringing in new people into your project and that will
go a lot easier when you have good docs to help them as well.

i.
 
D

Duncan Smith

Thanks all. It's looking like Turbogears at the moment (unless my boss
makes an executive decision). Cheers.

Duncan
 
?

=?ISO-8859-1?Q?Ralf_Sch=F6nian?=

Tim said:
On 15 Jan 2007 00:52:33 -0800, Torabisu <[email protected]> wrote:
Don't overlook Karrigell either, with a tiny learning curve its
always worth consideration, especially if you need rapid development
and a web server that will sit on top of your exising .py modules.

www.karrigell.com

hth :)

I would also like to vote for Karrigell.

BTW: Does anyone knows how to avoid stopping/starting of the webserver
after changing external libraries? I have some own modules under
/opt/local/python/lib and import them by extending the path with
sys.path.append() After changing any file here, I have to restart
Karrigell.

Ralf Schoenian
 
T

Tim Williams

I would also like to vote for Karrigell.

BTW: Does anyone knows how to avoid stopping/starting of the webserver
after changing external libraries? I have some own modules under
/opt/local/python/lib and import them by extending the path with
sys.path.append() After changing any file here, I have to restart
Karrigell.

Ralf, you should ask this on the Karrigell list :)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,236
Members
46,821
Latest member
AleidaSchi

Latest Threads

Top