473,569 Members | 2,522 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

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 1407

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**@schoeni an-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
5103
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 indenting is what makes Python unique) and sort of Ruby in its use of prefixes to define scoping etc (although there is no reference to this trait being...
4
1671
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 behaviors). Can anyone clarify:
1
1204
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 fifteen years now. My
5
3509
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 BASIC, QBASIC etc that is very useful except that it really doesn't like to run on modern operating systems and has hopeless graphics resolution and...
158
6315
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 using a non open source tracker (called JIRA - never heard before of course) for Python itself. Does this smell "Bitkeeper fiasco" to anyone...
0
225
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 is the Python equivalent to CPAN and finally we're developing an answer. At PyCon 2007 we need a solid set of talks about eggs, broken down into...
2
1450
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 engine." -- Fredrik Lundh (on comp.lang.python, prompting the editor to offer greetings to those of you who are not reading Python-URL! via that...
0
7701
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, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main...
0
7924
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
7979
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5514
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5219
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3653
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3643
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1223
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
940
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

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.