Skip to main content
Pythonic web.py
===========

Making `web.py` request handling more pythonic.


```python

import lessweb

def hello(ctx, name):
if not name:
name = 'World'
return 'Hello, ' + name + '!'

urls = ('GET', '/(.*)', hello)

app = lessweb.application(urls, locals())

```

All those magical web.* are now available in context variable.

```python

def hello(ctx):
user_data = ctx.input(color=[])
if 'color' not in ctx.cookies and not user_data.color:
ctx.setcookies('color', 'blue')
return 'Hello, from ' + ctx.env.get('REMOTE_HOST') or ctx.ip

urls = ('GET', '/', hello)
import lessweb
app = lessweb.application(urls, locals())

```

Only a part of web.py request handling has been masked with `less.web`. Rest of them are required to
do what they did already.

```python
import web
import lessweb

def redirect_to_referer(ctx):
referer = ctx.env.get('HTTP_REFERER', 'http://webpy.org')
raise web.seeother(referer)

urls = ('GET', '/', redirect_to_referer)
app = lessweb.application(urls, locals())
```
It's implemented as a tiny pythonic wrapper around `web.py` request handling.

The idea is to allow all request/response manipulation through `ctx`(context) of the handler function rather than module(`web`) level functions. `ctx` is basically `web.ctx` of `web.py`, which is already used to set and access request context. It also wraps other module level functionality of `web.py` such as `header`, `input`, `cookies`, `sessions` to yield a more pythonic interface.

To use sessions you have to configure session store in config as follows.

```python
web.config.sessionstore = web.session.DiskStore('sessions') # for disk store, other stores can be used similarly.
```

Metadata

Release files for lessweb.py 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lessweb.py 0.1.1
File Size Uploaded
lessweb.py-0.1.1.tar.gz 2.0 kB Details

Release files / lessweb.py-0.1.1.tar.gz

Download URL lessweb.py-0.1.1.tar.gz
Size 2.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f4f143d76aa8ffa0188d0111ffcf78437b0623fd14e4bbdf6aed6196802a1382
BLAKE2b-256 checksum
How to use checksums
374a27711ec1657d602b928916f05c9ca48b4d7a6b17962f8a3d40b2b986fb92
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.1.1 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page