Skip to content

Instantly share code, notes, and snippets.

@puentesarrin
puentesarrin / gist:2927255
Created June 14, 2012 00:09
Simple cache for Tornado Handler using MongoDB
class CacheBaseHandler(tornado.web.RequestHandler):
def prepare(self):
cached = self.application.db.cache.find_one({"slug": self.request.path})
if cached is not None:
self.write(cached["content"])
self.finish()
def render_string(self, template_name, **kwargs):
html_generated = \
@puentesarrin
puentesarrin / gist:3020783
Created June 29, 2012 21:30
Logging Twisted WebProxy requests with MongoDB
from twisted.internet import reactor
from twisted.web import proxy, http
import datetime
import pymongo
db = pymongo.Connection()['proxy']
class LoggingProxyRequest(proxy.ProxyRequest):
def process(self):
@puentesarrin
puentesarrin / gist:4022294
Last active October 12, 2015 11:48
Course M101 - Help to solve Homework 2.2
db.grades.aggregate({
'$group': {'_id': '$student_id'}}).forEach(function(i) {
var x = db.grades.find({ student_id: i._id, type: 'homework' }).sort({ score: 1 })[0];
db.grades.remove({ _id: x._id });
}
);
@puentesarrin
puentesarrin / gist:4201247
Created December 4, 2012 06:23
Conference Track Management
from datetime import timedelta
def get_track():
name = raw_input('Enter track name: ')
time = raw_input('Enter track time (in minutes): ')
return name, time
tracks = []
import toro
from tornado import ioloop, gen, web
q = toro.JoinableQueue()
@gen.engine
def consumer():
<html>
<body>
<p>
Current user: <strong>{{ current_user }}</strong>
</p>
<a href="/logout">Logout</a>
</body>
</html>
@puentesarrin
puentesarrin / demo.conf
Created April 1, 2013 18:16
Tornado, auto reloading/parsing options when config file is modified.
greeting = 'Hello, World'
@puentesarrin
puentesarrin / index.html
Created April 5, 2013 18:14
TornadoMail demo using a tornado.template.Loader.
<html>
<head>
<title>TornadoMail Demo</title>
</head>
<body>
<form method="post" action="/">
<input type="text" name="subject"/>
<input type="text" name="email"/>
<input type="submit" value="Send message"/>
</form>
# -*- coding: utf-8 *-*
import logging
import motor
import pymongo
from mongolog.handlers import MongoHandler
from tornado import ioloop, options, web
from tornado.options import options as opts
@puentesarrin
puentesarrin / bonzo_sample.py
Created August 26, 2013 02:21
Bonzo sample
import tornado.ioloop
import email
from bonzo.smtpserver import SMTPServer
def receive_message(message):
print "New received message: "
print "From: " + message['from']
print "Subject: " + message['subject']