python and the web
DESCRIPTION
Keynote for Day 2 of PyCon Taiwan 2012, by James TauberTRANSCRIPT
PYTHON AND THE WEBJ ames Tauber
@jtauber
Python Web
Python Web
Python Web
Python Web
Python Web
“python” in talk and “web” in talk
HISTORY1989
GvR starts work on PythonTBL writes proposal for what would become WWW
1994
Python 1.0 released
First WWW conference
W3C founded
1997
HTML 3.2 releasedPython 1.5 released
Python Web
Batter ies Inc luded
NumPy
Sc iPy
Matp lot l ib
pandas
NLTK
music21
sebast ian / czerny
Sphinx
readthedocs .or g
PyPI
cr ate . io
You can’t use a specialist language to build a system
•computer scientists
•domain experts
•system administrators
•web developers
“Programs are meant to be read by humans and only incidentally for computers to execute”
—Don Knuth
Python Web
HTML, HTTP, URLs
Ser v ing s tat ic f i les wi th hyper l inks
Images
CSS
Ser ver S ide Inc ludes
CGI
Common Gateway Inter face
Inver t ing Code and Mar kup
PHP and ASP
Database-backed Webs i tes
LAMP
J avascr ipt
XML
Web Ser v ices
AJAX
JSON
what i s a web page?
what i s a webs i te?
Candelabr a Demo
j tauber.g i thub.com demo
Python Web
LAMP
Python
ZOPE
Plone
WSGI
MVC
database mapping
HTML templat ing
request rout ing
TurboGears 1
SQLObject
K id
Cher r yPy
TurboGears 2
SQLAlchemy
Gensh i
Py lons
Repoze BFG
Pylons
Pyramid
Flask
Wer kzeur g
J in ja2
Django
1.0 September 2008
1.1 Ju ly 2009
1.2 May 2010
1.3 March 2011
1.4 March 2012
t imezones
SELECT FOR UPDATE
password hash ing
s igned cook ies
pro ject /app templates
wsg i .py
in-browser test ing
a layer above?
why layer ?
por tab i l i ty o f h igher layer s
reusab i l i ty o f lower layer s
“We read Knuth so you don’t have to”
—Tim Peters
idea realization
What you do for a living is not be creative, what you do is ship
— Seth Godin
Pinax prov ides what many s i tes have in common so you can focus on what makes your s i te d i f ferent
Project layoutDefau l t templates
Account ManagementReusable apps
Star ter Pro jects
AnnouncementsAttachments
AvatarsBadgesBlogs
BookmarksContact import
Email confirmationFriends
InvitationsMarkup
MicrobloggingNotification
OAuthOpenID
PaginationPhotosProfiles
Sign up codesTaggingTasks
Threaded-commentsTimezones
User-to-user messagesVotingWikis
cach ing (Redis)search (So l r / Haystack)
message queues (Celer y)
Prov id ing Web APIs
Consuming Web APIs
PYTHON AND THE WEBJ ames Tauber
@jtauber