I usually don't remember the syntax for HTML forms. Inevitably, when I'm starting a project, I need to go look up the basics. Then, I usually reuse the template that I come up with and don't look back. Here are some notes on those basics...

There is a python module, webhelpers, that will help in generating form markup:
http://pypi.python.org/pypi/WebHelpers
http://webhelpers.groovie.org/

This also turns out to be a good reference for common html tags, even if you don't want to generate them:
http://webhelpers.groovie.org/modules/html/tags.html

http://www.google.com/search?q=toscawidgets&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
toscawidgets - Google Search
http://us.pycon.org/2009/tutorials/schedule/2AM3/
ToscaWidgets: Test Driven Modular Ajax - PyCon 2009 - Chicago - A Conference for the Python Community
http://toscawidgets.org/
ToscaWidgets
http://toscawidgets.org/documentation/tw.forms/tutorials/index.html
Tutorials w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/documentation/ToscaWidgets/install/pylons_app.html
Pylons oscaWidgets v0.9.5dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/tutorials/sample_form.html
Building a Form with tw.forms w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/tutorials/pylons_one.html
Using tw.forms with Pylons. Part 1 w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/tutorials/db_sqlalchemy.html
SQLAlchemy & Elixir w.forms v0.9.3dev-20090212 documentation
http://turbogears.org/2.0/docs/main/ToscaWidgets/Cookbook.html
ToscaWidgets Cookbook G2 v2.0b6 documentation
http://turbogears.org/2.0/docs/main/ToscaWidgets/Cookbook/ReCaptcha.html
Adding Captcha to your Form G2 v2.0b6 documentation
http://recaptcha.net/
reCAPTCHA: Stop Spam, Read Books
http://turbogears.org/2.0/docs/main/ToscaWidgets/Cookbook/OpenLayersMap.html
OpenLayers Map Widget G2 v2.0b6 documentation
http://toscawidgets.org/documentation
ToscaWidgets - Documentation
http://toscawidgets.org/documentation/tw.dynforms/
Welcome to tw.dynformsdocumentation! w.dynforms v0.9.0 documentation
http://toscawidgets.org/documentation/tw.dynforms/tutorial.html#introduction
Tutorial w.dynforms v0.9.0 documentation
http://code.google.com/p/sqlalchemy-migrate/
sqlalchemy-migrate - Google Code
http://trac.ollix.org/miruku/
miruku rac
http://www.google.com/search?q=miruku+vs+sqlalchemy-migrate&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
miruku vs sqlalchemy-migrate - Google Search
http://code.google.com/p/urssus/
urssus - Google Code
http://lateral.netmanagers.com.ar/
Lateral Opinion
http://offog.org/code/rawdog.html
rawdog
http://toscawidgets.org/documentation/WidgetBrowser/
WidgetBrowserdocumentation idgetBrowser v0.1 documentation
http://toscawidgets.org/documentation/WidgetBrowser/install.html
Installing the WidgetBrowser idgetBrowser v0.1 documentation
http://toscawidgets.org/documentation/WidgetBrowser/browser.html
Using the WidgetBrowser idgetBrowser v0.1 documentation
http://toscawidgets.org/documentation/ToscaWidgets/
ToscaWidgets Documentation oscaWidgets v0.9.5dev-20090212 documentation
http://toscawidgets.org/documentation/ToscaWidgets/
ToscaWidgets Documentation oscaWidgets v0.9.5dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/modules/fields/index.html
tw.forms.fields w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/tutorials/sample_form.html
Building a Form with tw.forms w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/documentation/tw.forms/tutorials/db_sqlalchemy.html
SQLAlchemy & Elixir w.forms v0.9.3dev-20090212 documentation
http://toscawidgets.org/trac/tw.forms/wiki/FAQ#how-can-i-populate-a-singleselectfield-with-an-sqlalchemy-mapped-instance
FAQ oscaWidgets rac w.forms
http://toscawidgets.org/documentation/ToscaWidgets/
ToscaWidgets Documentation oscaWidgets v0.9.5dev-20090212 documentation
http://toscawidgets.org/documentation/ToscaWidgets/install/wsgi_app.html
Raw WSGI oscaWidgets v0.9.5dev-20090212 documentation
http://toscawidgets.org/documentation/ToscaWidgets/modules/api.html
tw.api oscaWidgets v0.9.5dev-20090212 documentation
http://www.google.com/search?hl=en&client=firefox-a&channel=s&rls=org.mozilla%3Aen-US%3Aofficial&hs=anZ&q=toscawidgets+date+field&btnG=Search
toscawidgets date field - Google Search
http://turbogears.org/2.0/docs/main/ToscaWidgets/forms.html
Using Tosc

http://www.google.com/search?hl=en&client=firefox-a&channel=s&rls=org.mozilla%3Aen-US%3Aofficial&q=pylons+form+generation&btnG=Search
pylons form generation - Google Search
http://spyced.blogspot.com/2008/04/m-half-baked-thoughts-on-python-web.html
Jonathan Ellis's Programming Blog - Spyced: My half-baked thoughts on Python web frameworks
http://techspot.zzzeek.org/?p=28
techspot.zzzeek.org Blog Archive Better Form Generation with Mako and Pylons
http://wiki.pylonshq.com/display/pylonscookbook/Form+generation+with+Mako
Form generation with Mako - Pylons Cookbook - PythonWeb
http://techspot.zzzeek.org/?p=28
techspot.zzzeek.org Blog Archive Better Form Generation with Mako and Pylons
http://www.daylife.com/
Daylife - A New Way to Explore the World
http://spyced.blogspot.com/2008/10/formalchemy-10.html
Jonathan Ellis's Programming Blog - Spyced: FormAlchemy 1.0
http://werkzeug.pocoo.org/
Welcome // Werkzeug


http://www.google.com/search?q=pylons+upload&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a
pylons upload - Google Search
http://wiki.pylonshq.com/display/pylonscookbook/Hacking+Pylons+for+handling+large+file+upload
Hacking Pylons for handling large file upload - Pylons Cookbook - PythonWeb
http://wiki.pylonshq.com/display/pylonscookbook/A+Better+Way+To+Limit+File+Upload+Size
A Better Way To Limit File Upload Size - Pylons Cookbook - PythonWeb
https://launchpad.net/pylons-fileuploadprogress
File Upload Progress Indicator for Pylons in Launchpad
http://wiki.pylonshq.com/display/pylonsdocs/Home
Home - Pylons Official Docs - PythonWeb
http://wiki.pylonshq.com/dosearchsite.action
Site Search - PythonWeb
http://wiki.pylonshq.com/display/toscawidgets/Using+twForms+with+Pylons.+Part+1
Using twForms with Pylons. Part 1 - ToscaWidgets - PythonWeb
http://wiki.pylonshq.com/display/pylonsdocs/Form+Handling
Form Handling - Pylons Official Docs - PythonWeb
http://toscawidgets.org/
ToscaWidgets



to start working with forms, you will new to add methods to a class... one to show the form, one to handle the form.

you will also need to import the validate code. (formencode)

layouts and other form validation can be stored with other model code (I'm torn if that is more UI or model validation... pylons seems to go with model validation).

Pylons comes with an easy to use `validate` decorator, imported by default in your `lib/base.py`. Using it in your controller is pretty straight-forward:

#this gets the validate decorator.
from pylons.decorators import *

to start working with forms, you will new to methods to a class... one to show the form, one to handle the form.

you will also need to import the validate code. (formencode)

layouts and other form validation can be stored with other model code (I'm torn if that is more UI or model validation... pylons seems to go with model validation).

Pylons comes with an easy to use `validate` decorator, imported by default in your `lib/base.py`. Using it in your controller is pretty straight-forward:

#this gets the validate decorator.
from pylons.decorators import *