space, → | next slide |
← | previous slide |
d | debug mode |
## <ret> | go to slide # |
c | table of contents (vi) |
f | toggle footer |
r | reload slides |
z | toggle help (this) |
def application(environ, response_callback)
text = 'Hola Mundo!\n'
response_callback(
"200 OK",
[('Content-Type', 'text/plain'),
('Content-Length', str(len(text)))]
)
return [text]
from wsgiref.simple_server import make_server
daemon = make_server('127.0.0.1', 8000, application)
daemon.handle_request()
$ curl -v http://127.0.0.1:8000
GET / HTTP/1.1
User-Agent: curl/7.19.7 (i486-pc-linux-gnu)
Host: 127.0.0.1:8000
Accept: */*
http://
: el protocologoogle.com
: host (o dominio):80
: puerto (opcional, 80
por omisión)/
: ruta (path)?q=python
: querystring, los parámetros#results
: fragmento (sólo accesible en el cliente)Apache
, nginx
, etc.)$ curl -v http://127.0.0.1:8000
HTTP/1.0 200 OK
Date: Mon, 11 Apr 2011 17:39:00 GMT
Server: WSGIServer/0.1 Python/2.6.5
Content-Type: text/plain
Content-Length: 12
Hola Mundo!
CREATE
, READ
, UPDATE
, DESTROY
POST
, GET
, PUT
, DELETE
/home/lfborjas/conquistar_el_mundo.txt
http://unblogx.com/posts/zalgo
GET http://misitio.com/index.php?func=editarPerfil&nombre=luis&id=666
POST http://misitio.com/perfiles/666
def application(environ, #entorno
response_callback) #constructor de respuestas
text = 'Hola Mundo!\n'
response_callback(
"200 OK",
[('Content-Type', 'text/plain'),
('Content-Length', str(len(text)))]
)
return [text]
from wsgiref.simple_server import make_server
daemon = make_server('127.0.0.1', 8000, application)
daemon.handle_request()
callable
class ReverseMiddleware:
def __init__(self, app):
self.wrapped_app = app
def __call__(self, environ, start_response):
for data in self.wrapped_app(environ,
start_response):
return data[::-1]
from wsgiref.simple_server import make_server
daemon = make_server('127.0.0.1'
, 8000
, ReverseMiddleware(application))
daemon.handle_request()
from webob import Request, Response
def sum_nums(text):
return sum([int(e) for e in text if e.isdigit()])
def app(environ, start_response):
request = Request(environ)
text = ''.join(request.GET.keys())
response = Response(content_type='text/html',
body="""<html>
<body style='font-size: 250px;'>
%s
<body>
</html>"""%sum_nums(text))
return response(environ, start_response)
from paste.httpserver import serve
serve(app)
url(r'^$', 'lista.views.crear',
name='home'),
url(r'^(?P<codigo>[a-zA-Z0-9]+)/$', 'lista.views.mostrar',
name='lista'),
url(r'^tarea/', include('tarea.urls')),
def mostrar(request, codigo):
lista = Lista.objects.get(codigo=codigo)
#Guardamos para actualizar la fecha de acceso
lista.save()
return render_to_response('lista/mostar.html',
{'lista':lista},
context_instance=
RequestContext(request))
class Lista(models.Model):
codigo = models.TextField(max_length=10)
titulo = models.TextField(null=True,
blank=True,
default='')
fecha_creacion = models.DateTimeField(auto_now_add=True)
fecha_acceso = models.DateTimeField(auto_now=True)