By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
444,199 Members | 1,120 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 444,199 IT Pros & Developers. It's quick & easy.

Python web app. (advice sought)

P: n/a
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
Jan 15 '07 #1
Share this Question
Share on Google+
9 Replies


P: n/a

Duncan Smith wrote:
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.

Jan 15 '07 #2

P: n/a
On 15 Jan 2007 00:52:33 -0800, Torabisu <tp*****@gmail.comwrote:
>
Duncan Smith wrote:
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.
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 :)
Jan 15 '07 #3

P: n/a

Tim Williams wrote:
On 15 Jan 2007 00:52:33 -0800, Torabisu <tp*****@gmail.comwrote:

Duncan Smith wrote:
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.

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...

Jan 15 '07 #4

P: n/a
Duncan Smith wrote:
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

Jan 15 '07 #5

P: n/a

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...

Jan 15 '07 #6

P: n/a

Duncan Smith wrote:
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.

Jan 15 '07 #7

P: n/a
Tim Williams schrieb:
On 15 Jan 2007 00:52:33 -0800, Torabisu <tp*****@gmail.comwrote:
>
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
Jan 16 '07 #8

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

Duncan
Jan 16 '07 #9

P: n/a
On 16/01/07, Ralf Schönian <ra**@schoenian-online.dewrote:
>
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 :)
Jan 16 '07 #10

This discussion thread is closed

Replies have been disabled for this discussion.