Steps with explanations to set up a server using:
- virtualenv
- Django
- nginx
- uwsgi
| """ | |
| tornado_static is a module for displaying static resources in a Tornado web | |
| application. | |
| It can take care of merging, compressing and giving URLs ideal renamings | |
| suitable for aggressive HTTP caching. | |
| (c) mail@peterbe.com | |
| """ |
| from django.contrib.sessions.backends.base import SessionBase, CreateError | |
| from django.conf import settings | |
| from django.utils.encoding import force_unicode | |
| import redis | |
| class SessionStore(SessionBase): | |
| """ Redis store for sessions""" | |
| def __init__(self, session_key=None): | |
| self.redis = redis.Redis( |
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8" /> | |
| <title>jQuery Mobile Original Source Bookmarklet for Chrome</title> | |
| <style type="text/css" media="screen"> | |
| body, html, h1 { margin: 0; padding: 0; } | |
| html { padding: 20px; background: #ddd; } | |
| body { max-width: 600px; margin: 0 auto; padding: 20px; box-sizing: border-box; background: #fff; font-family: Helvetica, arial; box-shadow: rgba(0,0,0,0.2) 0 0 5px } |
| """ | |
| Simple proof of concept code to push data to Google Analytics. | |
| Related blog post: http://www.canb.net/2012/01/push-data-to-google-analytics-with.html | |
| """ | |
| from random import randint | |
| from urllib import urlencode | |
| from urllib2 import urlopen | |
| from urlparse import urlunparse | |
| from hashlib import sha1 |
| """ | |
| This is a simple example of WebSocket + Tornado + Redis Pub/Sub usage. | |
| Do not forget to replace YOURSERVER by the correct value. | |
| Keep in mind that you need the *very latest* version of your web browser. | |
| You also need to add Jacob Kristhammar's websocket implementation to Tornado: | |
| Grab it here: | |
| http://gist.github.com/526746 | |
| Or clone my fork of Tornado with websocket included: | |
| http://github.com/pelletier/tornado | |
| Oh and the Pub/Sub protocol is only available in Redis 2.0.0: |
| <!doctype html> | |
| <head> | |
| <style> | |
| body { | |
| font: 10px sans-serif; | |
| } | |
| #main { | |
| left: 25%; | |
| position: absolute; | |
| } |
| function AttachmentCtrl($scope, $location, $timeout, Docs) { | |
| $(function() { | |
| $('#detail-form-doc').fileupload({ | |
| dataType: 'json', | |
| url: '/angular-ib/app/fileupload?id=' + $location.search().id, | |
| add: function(e, data) { | |
| $scope.$apply(function(scope) { | |
| // Turn the FileList object into an Array | |
| for (var i = 0; i < data.files.length; i++) { | |
| $scope.project.files.push(data.files[i]); |
| var myApp = angular.module('myApp').config(function($httpProvider) { | |
| $httpProvider.defaults.headers.post['X-CSRFToken'] = $('input[name=csrfmiddlewaretoken]').val(); | |
| }); |
| //Define a function scope, variables used inside it will NOT be globally visible. | |
| (function () { | |
| var | |
| //the HTTP headers to be used by all requests | |
| httpHeaders, | |
| //the message to be shown to the user | |
| message, |