Торнадо - PullRequest
       25

Торнадо

0 голосов
/ 01 ноября 2011

Как бы я создал штамп даты-времени из смещения клиента? Я возился с этим весь день. Идея состоит в том, чтобы войти в систему пользователя и на основе его часового пояса создать cookie, срок действия которого истекает через столько времени.

#!/usr/bin/env python

import tornado.auth
import tornado.database
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.escape
import hashlib
import unicodedata
import markdown
import os.path
import re
import urllib
import sys
import time
import json
import MySQLdb
import Cookie
from tornado.options import define, options
import datetime
from nptime import nptime

define("port", default=8001, help="Server port", type=int)
class Application(tornado.web.Application):
    def __init__(self):
        handlers = [
            (r"/", MainHandler),
            (r"/test", Test),
        ]
        tornado.web.Application.__init__(self, handlers)

        self.db = tornado.database.Connection(
            host=options.mysql_host, database=options.mysql_database,
            user=options.mysql_user, password=options.mysql_password)

class BaseHandler(tornado.web.RequestHandler):
    @property
    def db(self):
        return self.application.db

class MainHandler(BaseHandler):
    def get(self):
        self.set_header("Content-Type", "text/html")
        self.write()
        self.finish()

class Test(BaseHandler):
    def post(self):
        tmz = self.get_argument('tmz', '')
        cur = datetime.datetime.utcnow().strftime('%A, %B %d, %Y %I:%M:%S %p 'tmz, gmtime())
        self.set_header("Content-Type", "text/html")
        self.write(cur)
        self.finish()

def main():
    tornado.options.parse_command_line()
    http_server = tornado.httpserver.HTTPServer(Application())
    http_server.listen(options.port)
    tornado.ioloop.IOLoop.instance().start()


if __name__ == "__main__":
    main()

Где tmz будет отправленным примером часового пояса -0400 или + 0500

1 Ответ

0 голосов
/ 01 ноября 2011

У вас может быть скрытый ввод даты и времени, чтобы передать текущее время клиента, включая часовой пояс, в форму входа:

<input type="hidden" name="current_datetime" />

Значение этого ввода может быть заполнено JavaScript.

Затем в функции post вы можете добавить часы или дни к значению, которое передается current_datetime.

...