Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
92 lines (66 sloc) 1.69 KB
layout title
default
webpy 0.3 skeleton code

webpy 0.3 skeleton code

Here's the skeleton of a typical 0.3 web.py app:

code.py

import web
import view, config
from view import render

urls = (
    '/', 'index'
)

class index:
    def GET(self):
        return render.base(view.listing())

if __name__ == "__main__":
    app = web.application(urls, globals())
    app.internalerror = web.debugerror
    app.run()

config.py

import web
DB = web.database(dbn='postgres', db='appname', user='username', pw='')
cache = False

db.py

import config

def listing(**k):
    return config.DB.select('items', **k)

view.py

import web
import db
import config

t_globals = dict(
  datestr=web.datestr,
)
render = web.template.render('templates/', cache=config.cache, 
    globals=t_globals)
render._keywords['globals']['render'] = render

def listing(**k):
    l = db.listing(**k)
    return render.listing(l)

sql/tables.sql

CREATE TABLE items (
    id serial primary key,
    author_id int references users,
    body text,
    created timestamp default (current_timestamp at time zone 'utc')
);

templates/base.html

$def with (page, title=None)
<html><head>
<title>my site\
$if title: : $title\
</title>
</head><body>
<h1><a href="/">my site</a></h1>
$:page   
</body></html>

templates/listing.html

$def with (items)

$for item in items:
    $:render.item(item)

templates/item.html

$def with (item)

<p>$item.body</p>    
<p class="details">created $datestr(item.created)</p>