Пример #1
0
    except KeyError:
        raise Http403({'#details': 'Key did not match file'})

@route('/cookie-set')
def set_cookies(request, message='Hi!'):
    response = Response('Cookies set!')
    response.cookies.add_cookie('logged_in', 'true')
    # Insecure cookie setting
    response.cookies.add_unsigned_cookie('message', message)
    return response

@route('/cookie-get')
def get_cookies(request):
    logged_in = request.COOKIES.get_cookie('logged_in')
    message = request.COOKIES.get_unsigned_cookie('message')
    if logged_in:
        return message
    raise Http403({'#details': 'Go away!'})

@route('/cookie-del')
def get_cookies(request):
    response = Response('Cookies deleted!')
    response.cookies.del_cookie('logged_in')
    response.cookies.del_cookie('message')
    return response

if __name__ == '__main__':
    from pyroutes import utils
    route('/media')(utils.fileserver)
    utils.devserver(application)
Пример #2
0
from pyroutes.http.response import Response
from pyroutes.template import TemplateRenderer
import memcache
import simplejson
import urllib

tr = TemplateRenderer()
cache = memcache.Client(servers=['127.0.0.1:11211'])

@route('/')
def index(request):
    fml_endpoint = 'http://graph.facebook.com/search?q="so%20starving&type=post'
    fb_data = cache.get(fml_endpoint)
    if not fb_data:
        fb_response = urllib.urlopen(fml_endpoint).read()
        fb_data = simplejson.loads(fb_response)['data']
        cache.set(fml_endpoint, fb_data)
    return Response(tr.render('base.xml',
        {'ul': [
            {'li': {
                '#picture': {'img/src': 'https://graph.facebook.com/%s/picture' % post['from']['id']},
                '#message': {'#msg': post['message'], '#author': post['from']['name']}
                   }
            }
            for post in [p for p in fb_data if 'message' in p]]
        }))

if __name__ == '__main__':
    from pyroutes.utils import devserver
    devserver(application)
Пример #3
0
@route('/')
def index(request):
    fml_endpoint = 'http://graph.facebook.com/search?q="so%20starving&type=post'
    fb_data = cache.get(fml_endpoint)
    if not fb_data:
        fb_response = urllib.urlopen(fml_endpoint).read()
        fb_data = simplejson.loads(fb_response)['data']
        cache.set(fml_endpoint, fb_data)
    return Response(
        tr.render(
            'base.xml', {
                'ul': [{
                    'li': {
                        '#picture': {
                            'img/src':
                            'https://graph.facebook.com/%s/picture' %
                            post['from']['id']
                        },
                        '#message': {
                            '#msg': post['message'],
                            '#author': post['from']['name']
                        }
                    }
                } for post in [p for p in fb_data if 'message' in p]]
            }))


if __name__ == '__main__':
    from pyroutes.utils import devserver
    devserver(application)
Пример #4
0
Файл: tv.py Проект: BantouTV/tv
    """ XSPF, an XML based playlist format """
    response = magic(request, key)
    if isinstance(response, Response):
        return response
    time.sleep(1)
    channel = request.GET['ch']
    template_data = {'#url': response, '#title': channel}
    return Response(
            TemplateRenderer().render("templates/xspf.xml", template_data),
            headers=[('Content-type','application/xspf+xml'),
                 ('Content-disposition', 'attachment;filename=tv.xspf')])

if __name__ == '__main__':
    # For when we are running tv.py from the shell

    port = 8001
    address = '0.0.0.0'
    if sys.argv[1:]:
        try:
            address, port = sys.argv[1].rsplit(':', 1)
            port = int(port)
        except ValueError:
            sys.stderr.write(
'''If you want to supply a listen address, it must be on the format IP:port
Examples:
  ./tv.py :80            # Listen on all IPv4 addresses, on the HTTP port
  ./tv.py 127.0.0.1:8000 # Run on localhost, good for development
''')
    route('/media')(utils.fileserver)
    utils.devserver(application, address=address, port=port)
Пример #5
0
    if 'new_node_data' in request.POST:
        nodes[node] = request.POST['new_node_data']
        return Redirect('/show/%s' % node)

    template_data = {
        # XML-Template will remove the textarea node if None
        '#edit_contents': nodes.get(node) or '',
        '#edit_form/action': '/edit/%s' % node,
    }
    return Response(renderer.render("templates/edit.xml", template_data),
                    status_code="404 Not Found")


@route('/show')
def show(request, node):
    node_contents = nodes.get(node)

    if node_contents is None:
        return Redirect("/edit/%s" % node)

    template_data = {
        '#view_contents': node_contents,
        '#edit_link/href': '/edit/%s' % node
    }
    return Response(renderer.render("templates/show.xml", template_data))


if __name__ == '__main__':
    route('/media')(utils.fileserver)
    utils.devserver(application)