where do I begin with web programming in python?

J

jmDesktop

I have been to the main python site, but am still confused. I have
been using .net, so it may be obvious how to do this to everyone
else. I am aware there are various frameworks (Django, Pylons, etc.),
but I would like to know how to create web pages without these. If I
have mod_python or fastcgi on apache, where do I start? I don't have
clue where to begin to create a web page from scratch in python. I am
sure I will want to access database, etc., all the "normal" stuff, I
just want to do it myself as opposed to the frameworks, for learning.

Thank you for any help.
 
M

Mike Driscoll

I have been to the main python site, but am still confused.  I have
been using .net, so it may be obvious how to do this to everyone
else.  I am aware there are various frameworks (Django, Pylons, etc.),
but I would like to know how to create web pages without these.  If I
have mod_python or fastcgi on apache, where do I start?  I don't have
clue where to begin to create a web page from scratch in python.  I am
sure I will want to access database, etc., all the "normal" stuff, I
just want to do it myself as opposed to the frameworks, for learning.

Thank you for any help.

The web frameworks make it a lot easier. But you can use the httplib
modules. You should check out the wiki: http://wiki.python.org/moin/WebProgramming

There's also a couple of books on the topic: "Python Web Programming"
by Steve Holden, and "Web Programming in Python" by Thiruvathukal.

Check out the cgi-type stuff especially.

Hope that helps some.

Mike
 
C

Christian Heimes

jmDesktop said:
I have been to the main python site, but am still confused. I have
been using .net, so it may be obvious how to do this to everyone
else. I am aware there are various frameworks (Django, Pylons, etc.),
but I would like to know how to create web pages without these. If I
have mod_python or fastcgi on apache, where do I start? I don't have
clue where to begin to create a web page from scratch in python. I am
sure I will want to access database, etc., all the "normal" stuff, I
just want to do it myself as opposed to the frameworks, for learning.

I highly recommend WSGI instead of mod_python or (fast)cgi. I've heard
only bad things about mod_python over the past years and CGI is totally
old school.

Check out Python Paste, CherryPy and Django. You can also try the Zope,
Zope3 and Plone world but Zope is usually for larger and complex
applications.

Most frameworks come with their own little web server for development, too.

Christian
 
G

Graham Dumpleton

I highly recommend WSGI instead ofmod_pythonor (fast)cgi. I've heard
only bad things aboutmod_pythonover the past years and CGI is totally
old school.

Check out Python Paste, CherryPy and Django. You can also try the Zope,
Zope3 and Plone world but Zope is usually for larger and complex
applications.

Most frameworks come with their own little web server for development, too.

I'd also suggest avoiding coding anything directly to mod_python and
instead base things on WSGI. You can still run it on mod_python with a
suitable adapter, but you can also run it with mod_wsgi, mod_fastcgi,
or using pure Python web servers such as the one in Paste as well.

For a low level nuts and bolts (anti framework) approach I'd suggest
looking at:

http://dev.pocoo.org/projects/werkzeug/

This gives you all the basic components, but it is really up to you as
to how you put them together, which seems to be what you want to be
able to do.

Graham
 
G

George Sakkis

I'd also suggest avoiding coding anything directly to mod_python and
instead base things on WSGI. You can still run it on mod_python with a
suitable adapter, but you can also run it with mod_wsgi, mod_fastcgi,
or using pure Python web servers such as the one in Paste as well.

For a low level nuts and bolts (anti framework) approach I'd suggest
looking at:

 http://dev.pocoo.org/projects/werkzeug/

This gives you all the basic components, but it is really up to you as
to how you put them together, which seems to be what you want to be
able to do.

Or if you don't want to use any 3rd party package and have Python 2.5,
you may start from http://www.xml.com/pub/a/2006/09/27/introducing-wsgi-pythons-secret-web-weapon.html.
Here's the standard "Hello world!" example:

from wsgiref.simple_server import make_server

def application(environ, start_response):
start_response('200 OK',[('Content-type','text/html')])
return ['<html><body>Hello World!</body></html>']

httpd = make_server('', 8000, application)
print "Serving HTTP on port 8000..."
httpd.serve_forever()

and point your browser to http://localhost:8000/

HTH,
George
 
P

Paul Rubin

jmDesktop said:
I am aware there are various frameworks (Django, Pylons, etc.),
but I would like to know how to create web pages without these. If I
have mod_python or fastcgi on apache, where do I start? I don't have
clue where to begin to create a web page from scratch in python. I am
sure I will want to access database, etc., all the "normal" stuff, I
just want to do it myself as opposed to the frameworks, for learning.

I didn't notice anyone mentioning the simplest answer of them all:
write an old fashioned cgi using python's cgi module.
 
7

7stud

I have been to the main python site, but am still confused.  I have
been using .net, so it may be obvious how to do this to everyone
else.  I am aware there are various frameworks (Django, Pylons, etc.),
but I would like to know how to create web pages without these.  If I
have mod_python or fastcgi on apache, where do I start?  I don't have
clue where to begin to create a web page from scratch in python.  I am
sure I will want to access database, etc., all the "normal" stuff, I
just want to do it myself as opposed to the frameworks, for learning.

Thank you for any help.

Directions for a simple CGI script:

1) Start apache.

2) Use a text editor to create a webpage with a link:

<html>
<head>
<title>Python CGI Test</title>
</head>

<body>
<div>
<a href="http://localhost/cgi-bin/first.py">click me</a>
</div>
</body>

</html>

Save that file with a .htm extension anywhere on your computer, e.g.
name the file test.htm and save it in C:\My Documents.


3) The value of the link's href attribute is a special url. The url
starts with "http://localhost", or it may need to start with something
like http://localhost:8080" depending on what port number you
installed Apache on. If you used the default port when you installed
Apache, then the first part of the url will be "http:/localhost".

The rest of the url is the relative path to your cgi script. The path
is relative to your Apache2 folder. For instance, my directory
structure looks like this:

Apache2
----htdocs
----cgi-bin
--------first.py
----etc.

So the relative path to my cgi script is "/cgi-bin/first.py".

4) Create a cgi script:

#!/usr/bin/env python

#For Windows, instead of the above line use
#something like: #!C:\Python25\python.exe
#instead. The path after "#!" should be the
#path to wherever python.exe is on your computer.

import cgitb; cgitb.enable()

#The above line will cause error messages to
#be sent to your browser, which is helpful for
#debugging. Otherwise, your browser will just
#show a blank page when there is an error in your
#script

print "Content-type: text/html"
print
print "<h1>Hello World</h1>"


The first print statement is the minimum header you need when
responding to a web page. After you print all the headers you desire,
then you need to print a blank line. After the blank line, you print
the html that you want the browser to display.


5) On Unix: you have to set the file permissions for your cgi script.
Everyone must be able to read and execute your cgi script:

$ chmod 755 first.py


6) Start your web browser, and click on File>Open and navigate to
your .htm file. When your html page opens in your browser, click on
the link. The link will call your python cgi script, the cgi script
will respond my sending some html to your browser, then your browser
will display the html.
 
A

andrei.zavidei

i also asked same question in this list last week.
i foundhttp://www.cherrypy.org/to be most suitable for me.
it is basic, easy, pure...
it contains its own webserver, very easy to start.

others have many framworks, structures, classes many many..
i wanted a pure web programming system , i found cherrypy.

see you.




--
Ý.Bahattin Vidinli
Elk-Elektronik Müh.
-------------------
iletisim bilgileri (Tercih sirasina gore):
skype: bvidinli (sesli gorusme icin,www.skype.com)
msn: (e-mail address removed)
yahoo: bvidinli

+90.532.7990607
+90.505.5667711

I agree. Try cherrypy. I was able to write simple issue tracking
system for my project with basic web interface within 2 weeks.
Prior to this I had no web development experience at all. It was
really easy with cherrypy to start.
 
C

CM

I agree. Try cherrypy. I was able to write simple issue tracking
system for my project with basic web interface within 2 weeks.
Prior to this I had no web development experience at all. It was
really easy with cherrypy to start.


Really? I tried CherryPy for a few minutes--totally 100% new to
web programming--and though I was pleased at the very basic "Hello,
World!" tutorial, I was unable to figure out how to use the more
advanced tutorials that come with the package. Could you suggest
how one could learn? I have experience with Python and GUI app
development, zero on web apps, but want to make widget-having web
apps which uses Python as the logic.

Any tips would be appreciated!

Also, beyond just running a small test web app with the "server"
running on my own computer, what is a basic way to try it out
actually on the web? Thanks!
 

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

Forum statistics

Threads
473,755
Messages
2,569,537
Members
45,022
Latest member
MaybelleMa

Latest Threads

Top