473,394 Members | 1,658 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,394 software developers and data experts.

Python web app. (advice sought)

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
9 1396

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

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

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

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
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
Thanks all. It's looking like Turbogears at the moment (unless my boss
makes an executive decision). Cheers.

Duncan
Jan 16 '07 #9
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 thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

105
by: Peter Hickman | last post by:
Well after all this discussion it would appear that a 'Python like' language has appeared => Prothon. http://www.prothon.org/index.html Very alpha, sort of like Python (if you consider the...
4
by: adsheehan | last post by:
Hi, I am embedding Python into a multi-threaded C++ application running on Solaris and need urgent clarification on the embedding architecture and its correct usage (as I am experience weird...
1
by: Jolly Student | last post by:
Dear Colleagues: Thank you for taking the time to read this - I recently posted here with regards to what was possible with .NET. I have been working as a systems engineer for about...
5
by: Ray Tomes | last post by:
Hi Folks I am an old codger who has much experience with computers in the distant past before all this object oriented stuff. Also I have loads of software in such languages as FORTRAN and...
158
by: Giovanni Bajo | last post by:
Hello, I just read this mail by Brett Cannon: http://mail.python.org/pipermail/python-dev/2006-October/069139.html where the "PSF infrastracture committee", after weeks of evaluation, recommends...
0
by: Jeff Rush | last post by:
Eggs are important to Python and will become more so over the next few years, if understood and embraced by the community. They are a key competitive feature - I've been asked so many times what...
2
by: Paul Boddie | last post by:
QOTW: "c.l.python is just a small speck at the outer parts of the python universe. most python programmers don't even read this newsgroup, except, perhaps, when they stumble upon it via a search...
0
by: ryjfgjl | last post by:
If we have dozens or hundreds of excel to import into the database, if we use the excel import function provided by database editors such as navicat, it will be extremely tedious and time-consuming...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.