Skip to content

Instantly share code, notes, and snippets.

@teepark
Created July 11, 2010 20:13
Show Gist options
  • Save teepark/471786 to your computer and use it in GitHub Desktop.
Save teepark/471786 to your computer and use it in GitHub Desktop.
#!/usr/bin/env python
# vim: fileencoding=utf8:et:sta:ai:sw=4:ts=4:sts=4
import pprint
from shorty import App
from feather.wsgi import serve
app = App()
@app.get("^(.*[^/])$")
def append_slash(request, path):
request.redirect(path + "/")
@app.get("^/hello/world/$")
def hello(request):
return "<p>Hello, World!</p>"
@app.get(r"^/hello/(\w+)/$")
def hello_anyone(request, name):
# potential XSS hole
return "<h1>Hello, %s</h1>" % name
@app.get("^/headers/$")
def headers(request):
request.add_header("content-type", "text/plain")
return pprint.pformat(request.headers.items())
@app.get("^/cookies/$")
def cookies(request):
request.add_header("content-type", "text/plain")
print request.headers.keys()
return "\n".join(
"%s: %s" % (k, v.value) for k, v in request.cookies.items())
@app.get("^/write_cookie/$")
def write_cookie(request):
request.add_header('content-type', 'text/html')
return '''<form method="POST" action="/write_cookie/">
<input type="text" name="name"/><br>
<input type="text" name="value"/>
<input type="submit"/>
</form>'''
@app.post("^/write_cookie/$")
def write_cookie_post(request):
request.cookies[request.post['name']] = request.post['value']
request.redirect("/cookies/", 302)
if __name__ == '__main__':
serve(("localhost", 9090), app, worker_count=1, traceback_body=True)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment