473,626 Members | 3,413 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Building Python Based Web Application

Hello All,

I am interested in setting up a modest invoicing system for some
consulting I am doing. I like the idea of managing this on the web and
creating invoices and printing them from a browser. However, I'm not
really sure where to start. I've played with some CMS applications, but
they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
like to interface with mySQL (or whatever the favorite web-flavor
database app is these days). I would like to be able to use my python
skills.

I confident that if I set out to write this from scatch, I will be
seriously re-inventing the wheel, perhaps several times over.

So, my question is, does anyone know of a book and/or some kind of
framework that would make the best sense for what I am describing here?
I've heard of Zope, but I would like to make sure its appropriate for
the job before I spend 2 or 3 days getting acquainted with it. I'm adept
at HTML, python, CSS, python-CGI, and interfacing with mySQL through
DBI. I'm sure I could get something to work with these skills, but I
want to minimize wheel re-invention as much as possible.

Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.

Any suggestions will be greatly appreciated.

James

--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/
Sep 8 '06 #1
10 1885
James Stroud wrote:
Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.

Any suggestions will be greatly appreciated.
Two very popular frameworks are TurboGears (http://www.turbogears.org)
and Django (http://www.djangoproject.com/). I have had good luck with
both in the past, and TurboGears is my current framework of choice.

There are a bunch of other frameworks out there as well, but I would
guess that these are the two most popular.

Best of luck -

--
Jonathan LaCour
http://cleverdevil.org
Sep 8 '06 #2

James Stroud wrote:
Hello All,

I am interested in setting up a modest invoicing system for some
consulting I am doing. I like the idea of managing this on the web and
creating invoices and printing them from a browser. However, I'm not
really sure where to start. I've played with some CMS applications, but
they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
like to interface with mySQL (or whatever the favorite web-flavor
database app is these days). I would like to be able to use my python
skills.

I confident that if I set out to write this from scatch, I will be
seriously re-inventing the wheel, perhaps several times over.

So, my question is, does anyone know of a book and/or some kind of
framework that would make the best sense for what I am describing here?
I've heard of Zope, but I would like to make sure its appropriate for
the job before I spend 2 or 3 days getting acquainted with it. I'm adept
at HTML, python, CSS, python-CGI, and interfacing with mySQL through
DBI. I'm sure I could get something to work with these skills, but I
want to minimize wheel re-invention as much as possible.

Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.

Any suggestions will be greatly appreciated.

James

--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/
Hi James,
>From what it looks like you are doing, filtered by my personal
experience, I would recommend either Django or TurboGears. From what I
have heard Zope, and Pylons would also be good choices.

Django would be by far the better choice if your data entry forms would
map directly to your database tables. The admin interface gives you
web-based access to your database pretty much for free. It doesn't work
as well when your data relationships are more complicated, but could
probably prove to be a useful head start.

I think TurboGears is a pretty good choice because of widgets. In
TurboGears widgets are packaged up bits of user interaction code, made
portable throughout your project. Widgets have already been created
that handle form creation, a bunch of nifty little ajax things, and
even more advanced features. User created widgets can be (and are)
easily made available for download and installation.

One example that you would probably find useful is the TurboTinyMCE
widget, which coincidentally enough is not a standard part of
turbogears, but a downloadable widget. It incorporates the TinyMCE text
editor into any web page without having to worry about adding style
sheets, javascript includes, or really any code that produces TinyMCE
to your existing HTML. You basically put a call to the TinyMCE widget
in your Template and all the rest of the work happens automatically.
TurboGears also has an admin interface (named Catwalk), but it is not
designed for external use.

Without having a better idea of what you are trying to do, I would
recommend Django on the grounds that the admin interface will probably
do what you need. I would encourage you to take a look at both projects
if you have time, just to see which one you like more, but based on raw
feature matches that is my recommendation.

Disclosure: I do most of my work with TurboGears. If I have maligned or
misrepresented any other project in any way please attribute it to lack
of experience. If I have maligned or misrepresented TurboGears in any
way, please attribute it to lack of caffeine.

Sep 8 '06 #3
On 9/8/06, James Stroud <js*****@mbi.uc la.eduwrote:
Hello All,

I am interested in setting up a modest invoicing system for some
consulting I am doing. I like the idea of managing this on the web and
creating invoices and printing them from a browser. However, I'm not
really sure where to start. I've played with some CMS applications, but
they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
like to interface with mySQL (or whatever the favorite web-flavor
database app is these days). I would like to be able to use my python
skills.

I confident that if I set out to write this from scatch, I will be
seriously re-inventing the wheel, perhaps several times over.

So, my question is, does anyone know of a book and/or some kind of
framework that would make the best sense for what I am describing here?
I've heard of Zope, but I would like to make sure its appropriate for
the job before I spend 2 or 3 days getting acquainted with it. I'm adept
at HTML, python, CSS, python-CGI, and interfacing with mySQL through
DBI. I'm sure I could get something to work with these skills, but I
want to minimize wheel re-invention as much as possible.

Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.
I think that Karrigell might do what you want, and you can read all
the (excellent) documentation in a few hours. Otherwise, specially if
you think you might get deeper into web-based stuff, with more
complex/special/whatever needs, I'd probably try Pylons (which has
also very nice and well organized docs). I have no direct experience
with Django or TG, but I find them "overwhelmi ng", specially compared
to Karrigell; Zope I find even more overwhelming.

HTH,

R.
--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/116
--
http://mail.python.org/mailman/listinfo/python-list117

--
Ramon Diaz-Uriarte
Bioinformatics Unit
Spanish National Cancer Centre (CNIO)
http://ligarto.org/rdiaz
Sep 8 '06 #4
Hi folks.

I am interested on this topic as well.

If my application is not database related, what would be a good choice?

I have clients that wish to use my Python applications but I am not
willing to give them the code. So, I am thinking about setting it up
as a web based application and let them run it from their browser. If
things go well, may be I can charge them for usage later.

The application will involve getting a data file from the user, do some
processing, and return a result file to the user. Very modest - to
start.

Sep 8 '06 #5

John Henry wrote:
Hi folks.

I am interested on this topic as well.

If my application is not database related, what would be a good choice?

I have clients that wish to use my Python applications but I am not
willing to give them the code. So, I am thinking about setting it up
as a web based application and let them run it from their browser. If
things go well, may be I can charge them for usage later.

The application will involve getting a data file from the user, do some
processing, and return a result file to the user. Very modest - to
start.
For that kind of usage I don't know if any of the big name web
frameworks would be worth the effort, especially if returning a result
file entails making it available for download instead of handing it
back in the form of an HTML page. At that point all you would really
need is a controller to handle most of the details of working in HTTP
and maybe a templating system to help out with the HTML.

The only controller that is available independently that I can comment
on usefully is Cherrypy. It works pretty well, can run its own web
server if you like, and seems like it would be simple enough to use for
what you are talking about.

Without knowing more about your requirements that would be my
suggestion. I am sure there are other people on this group with more
experience here who could give more useful commentary.

-Adam

Sep 8 '06 #6
The most modest way is to use pure Python and interface via CGI with
the web. I would start there.

As you code you will find yourself saying "I wonder if a framework is
out there that already has automated this specific process (say
templating)?", well then you can search and find such a framework.

If you pick a framework you are not familiar with right from the start
then besides your original problem that you want o solve, you have
another problem -- that of learning a new framework. You will end up
molding your problem to some framework (this is not necessarily a very
bad thing) rather than finding a framework that helps you solve the
problem.

--Nick V.
John Henry wrote:
Hi folks.

I am interested on this topic as well.

If my application is not database related, what would be a good choice?

I have clients that wish to use my Python applications but I am not
willing to give them the code. So, I am thinking about setting it up
as a web based application and let them run it from their browser. If
things go well, may be I can charge them for usage later.

The application will involve getting a data file from the user, do some
processing, and return a result file to the user. Very modest - to
start.
Sep 9 '06 #7
James Stroud wrote:
Hello All,

I am interested in setting up a modest invoicing system for some
consulting I am doing. I like the idea of managing this on the web and
creating invoices and printing them from a browser. However, I'm not
really sure where to start. I've played with some CMS applications, but
they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
like to interface with mySQL (or whatever the favorite web-flavor
database app is these days). I would like to be able to use my python
skills.

I confident that if I set out to write this from scatch, I will be
seriously re-inventing the wheel, perhaps several times over.

So, my question is, does anyone know of a book and/or some kind of
framework that would make the best sense for what I am describing here?
I've heard of Zope, but I would like to make sure its appropriate for
the job before I spend 2 or 3 days getting acquainted with it. I'm adept
at HTML, python, CSS, python-CGI, and interfacing with mySQL through
DBI. I'm sure I could get something to work with these skills, but I
want to minimize wheel re-invention as much as possible.

Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.

Any suggestions will be greatly appreciated.

James
Once you solve the web data maintenance part (which I do using wxPython
on the desktop) you might be interested in my Python db-to-pdf invoice
generator, which I've been using now for several years. If so, drop me a
line and I'll send you a copy.

regards
Steve
--
Steve Holden +44 150 684 7255 +1 800 494 3119
Holden Web LLC/Ltd http://www.holdenweb.com
Skype: holdenweb http://holdenweb.blogspot.com
Recent Ramblings http://del.icio.us/steve.holden

Sep 9 '06 #8
James Stroud wrote:
Hello All,

I am interested in setting up a modest invoicing system for some
consulting I am doing. I like the idea of managing this on the web and
creating invoices and printing them from a browser. However, I'm not
really sure where to start. I've played with some CMS applications, but
they seem more for blogging (mamba, wordpress, etc.). Ideally, I would
like to interface with mySQL (or whatever the favorite web-flavor
database app is these days). I would like to be able to use my python
skills.

I confident that if I set out to write this from scatch, I will be
seriously re-inventing the wheel, perhaps several times over.

So, my question is, does anyone know of a book and/or some kind of
framework that would make the best sense for what I am describing here?
I've heard of Zope, but I would like to make sure its appropriate for
the job before I spend 2 or 3 days getting acquainted with it. I'm adept
at HTML, python, CSS, python-CGI, and interfacing with mySQL through
DBI. I'm sure I could get something to work with these skills, but I
want to minimize wheel re-invention as much as possible.

Basically, I want a jump start on data-base oriented web development
with a focus on applying my python skills.

Any suggestions will be greatly appreciated.

James

--
James Stroud
UCLA-DOE Institute for Genomics and Proteomics
Box 951570
Los Angeles, CA 90095

http://www.jamesstroud.com/
James,

Karrigell is serving me well at the moment for a low-traffic
intranet/library-cataloguing site. There are different ways of creating
your app (html inside python, python inside html, or Karrigell
services) - personally, I use services exclusively, so:

library/books.ks/add, library/books.ks/edit,
library/books.ks/delete
library/authors.ks/add, library/authors.ks/edit,
library/authors.ks/delete

etc.

( I think - to the best of my knowledge - these would equate to
'controllers' in other frameworks - BookController, AuthorControlle r...
)

Karrigell will also serve static pages with a simple

Include( 'mypage.html' )

I've recently set up 'lighttpd' webserver ( http://www.lighttpd.net ),
and this proxies easily to Karrigell with the following in
'lighttpd.conf' :

server.modules = ( "mod_proxy" )
static-file.exclude-extensions = ( ".ks" )
$HTTP["url"] =~ "\.ks" {
proxy.server = ( "" =>
((
host ="127.0.0.1" ,
port =8081
))
)
}

ie. "if there is a '.ks' in the url, ask Karrigell, otherwise it's
static so serve it yourself"

I'm also using 'leonardo' (http://leonardo.pyworks.org) as a 'Latest
News' cms - it runs as a cgi script ( which lighttpd will serve via
"mod_cgi":

server.modules = ( "mod_proxy" , "mod_cgi")
static-file.exclude-extensions = ( ".ks", ".py", ".cgi" )
cgi-assign = ( ".py" ="/usr/local/bin/python")

(Also useful is my trusty , if imperfect, html generator,
htmlbuilder.py:

http://gflanagan.net/site/python/htm...htmlbuilder.py
)

Hope that helps.

Gerard

Sep 9 '06 #9

Adam Jones wrote:
John Henry wrote:
Hi folks.

I am interested on this topic as well.

If my application is not database related, what would be a good choice?

I have clients that wish to use my Python applications but I am not
willing to give them the code. So, I am thinking about setting it up
as a web based application and let them run it from their browser. If
things go well, may be I can charge them for usage later.

The application will involve getting a data file from the user, do some
processing, and return a result file to the user. Very modest - to
start.

For that kind of usage I don't know if any of the big name web
frameworks would be worth the effort, especially if returning a result
file entails making it available for download instead of handing it
back in the form of an HTML page. At that point all you would really
need is a controller to handle most of the details of working in HTTP
and maybe a templating system to help out with the HTML.

The only controller that is available independently that I can comment
on usefully is Cherrypy. It works pretty well, can run its own web
server if you like, and seems like it would be simple enough to use for
what you are talking about.

Without knowing more about your requirements that would be my
suggestion. I am sure there are other people on this group with more
experience here who could give more useful commentary.

-Adam
Thanks, I am checking out CherryPie

Sep 9 '06 #10

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

37
10414
by: Ubaidullah Nubar | last post by:
Hi, How well is Python suited for developing database based applications? I am new to Python so please bear with me if some of the questions are too simple. I specifically have the following questions: 1. Is there an example of a simple data-entry application written in Python using a GUI interface? Something like a simple address book app with a listbox displaying all addresses with the ability to add/modify/delete.
9
2280
by: Dan Cescato | last post by:
When I try to build Python 2.3 on HP-UX 10.20 using their cc compiler, I get a compile failure. It comes down to Python/thread_pthread.h deciding that my machine is an unsupported system, as documented in the README file. ("Systems defining PY_PTHREAD_D4..."). Apparently, Python 2.3 doesn't like their implementation of pthreads. However, in the "Platform specific notes" section, there is a note about HP-UX 10.20 which makes me believe...
17
2051
by: Nick | last post by:
I am doing some research into building web applications using Object Oriented techniques. I have found the excellent patterns section on the MSDN site, but other than that I cannot find any good, concrete examples. I know Microsoft are really pushing OO with the .NET Framework and C#, but for web stuff I am finding good examples sparse. Can anyone offer some links to articles, whitepapers, sites etc that maybe give a good overview of the...
12
1590
by: Ray | last post by:
Hello, I've got the chance to determine the technology to use in creating a product similar to this: http://www.atomicisland.com/ Now the thing is that I need to sell this to the guy with the money. I've developed for years with C++ and Java, last 7 years J2EE, and I'm kinda sick of the "bloated" feeling that the whole J2EE/appserver
28
2617
by: H J van Rooyen | last post by:
Hi, I want to write a small system that is transaction based. I want to split the GUI front end data entry away from the file handling and record keeping. Now it seems almost trivially easy using the sockets module to communicate between machines on the same LAN, so that I want to do the record keeping on one machine.
7
1348
by: digimotif | last post by:
All, I'm currently working with a small development company on a PHP application they already have. There are several processing tasks that could be scripted in Python and run in the background to modify a database, instead of the way they have it now, which waits for a webpage to return from processing. There is also the possibility of building client gui applications that work with the database as well, so I'm looking for a way I...
20
2633
by: Thorsten Kampe | last post by:
Hi, I've already sent this to the Komodo mailing list (which seemed to me the more appropriate place) but unfortunately I got no response. I'd like to build a Python GUI app. Neither Tkinter nor Wxpython nor PyQT are actually what I want (because the lack of GUI builders and they don't really look good on Windows and Linux). Komodo itself is an excellent example of a - at least Python driven -
15
3204
by: kyosohma | last post by:
Hi, I am trying to get a small group of volunteers together to create Windows binaries for any Python extension developer that needs them, much like the package/extension builders who volunteer their time to create Linux RPMs. The main thing I need are people willing to test the binaries to make sure the extension is stable. This would require installing the binary and probably downloading the source too to get the developer's test
0
8262
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 usage, and What is the difference between ONU and Router. Let’s take a closer look ! Part I. Meaning of...
0
8196
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 effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
8701
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. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8364
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 Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8502
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 choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
0
4090
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 the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4196
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
2623
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
1507
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 effective websites that not only look great but also perform exceptionally well. In this comprehensive...

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.