from django.conf import settingsimport django.contrib.authimport django.utils.importlibimport tornadofrom tornado.options import optionsimport tornado.webimport tornado.ioloopimport sockJs.tornadoclass RouterConnection(sockJs.tornado.sockJsConnection): def get_current_user(self,info): engine = django.utils.importlib.import_module(django.conf.settings.SESSION_ENGINE) session_key = str(info.get_cookie(django.conf.settings.SESSION_cookie_name)).split('=')[1] class Dummy(object): pass django_request = Dummy() django_request.session = engine.SessionStore(session_key) user = django.contrib.auth.get_user(django_request) return user def on_open(self,info): user = self.get_current_user(info=info)if __name__ == "__main__": import logging Router = sockJs.tornado.sockJsRouter(RouterConnection) app = tornado.web.Application(Router.urls,deBUG=True,) app.Listen(settings.TORNADO_PORT) tornado.options.parse_command_line() tornado.ioloop.Ioloop.instance().start()
我的问题如下:
Django更改了日志配置,我再也看不到龙卷风的任何日志输出了.我怎样才能重新初始化龙卷风伐木?还有其他方法可以将Django与Tornado集成吗?
提前谢谢了.
解决方法 要重置django日志记录,请使用以下命令:logger = logging.getLogger('')for handler in logger.handlers: logger.removeHandler(handler)tornado.options.parse_command_line()
使用django.conf模块时,LazySettings类在初始化的django logger中初始化.
我还必须使用初始化的设置类重写代码:
from django.conf import settingsimport django.contrib.authimport django.utils.importlibimport tornadofrom tornado.options import optionsimport tornado.webimport tornado.ioloopimport sockJs.tornadoTORNADO_PORT = settings.TORNADO_PORTclass RouterConnection(sockJs.tornado.sockJsConnection): def get_current_user(self,info): engine = django.utils.importlib.import_module(settings.SESSION_ENGINE) session_key = str(info.get_cookie(settings.SESSION_cookie_name)).split('=')[1] class Dummy(object): pass django_request = Dummy() django_request.session = engine.SessionStore(session_key) user = django.contrib.auth.get_user(django_request) return user def on_open(self,info): user = self.get_current_user(info=info)if __name__ == "__main__": import logging logger = logging.getLogger('') for handler in logger.handlers: logger.removeHandler(handler) tornado.options.parse_command_line() Router = sockJs.tornado.sockJsRouter(RouterConnection) app = tornado.web.Application(Router.urls,deBUG=settings.DEBUG) app.Listen(settings.TORNADO_PORT) tornado.options.parse_command_line() tornado.ioloop.Ioloop.instance().start()总结
以上是内存溢出为你收集整理的python – 龙卷风中的Django用户全部内容,希望文章能够帮你解决python – 龙卷风中的Django用户所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)