- 博客(9)
- 资源 (4)
- 收藏
- 关注
原创 django middleware加载过程
使用三个列表保存middleware的方法:_view_middleware以正序保存process_view方法_template_response_middleware以倒序保存process_template_response方法_exception_middleware以倒序保存process_exception方法middleware对象的调用过程:def __c...
2018-03-18 11:48:14
801
原创 django+tornado实现实时查看远程日志
背景我使用tornado做了一个实时日志查看的系统,远程日志查看的部分使用了redis的订阅和发布功能, 基本功能OK,不过,使用过程中出现了几次Too many open files…的错误,下面就是针对这一现象所做的总结。 初步解决办法刚开始不太清楚具体的原因,以为是查看日志的人比较多,存在大量连接导致的。重启了实时日志服务后恢复正常了。而且由于系统默认的进程打开文件上限是
2018-01-31 17:11:21
1385
原创 django+tornado实现实时查看远程日志
大致思路:1.利用tornado提供的websocket功能与浏览器建立长连接,读取实时日志并输出到浏览器2.写一个实时读取日志的脚本,利用saltstack远程执行,并把实时日志发往redis中。3.tornado读取redis中的信息,发往浏览器。此过程用到了redis的发布和订阅功能。先看一下tornado中是如何处理的:import osimport s
2018-01-22 18:39:13
4201
1
原创 使用django + layui实现侧边栏多级菜单的功能
layui本身是个非常棒的前段框架,自带的也有侧边栏功能,不过不 支持多级,子菜单也没有缩进,因此,我做了些调整。树形菜单是通过Django的自定义标签渲染的。自定义标签代码如下:def is_ancestor(current, menu): """ menu是否current的祖先 :param current: 当前菜单 :param menu:
2018-01-04 14:41:02
6327
原创 python中元类的__call__方法的作用
元类是类的类,元类之于类就相当于类之于实例。元类的new方法会创建一个类并返回,就像类的new方法会创建一个实例并返回一样。元类中其他方法的定义类似于类中方法的定义,例如:class Meta(type): def __new__(cls, name, bases, dct): # cls为元类Meta return type.__new__(cls, name, bas
2017-12-07 15:48:22
5224
1
原创 欢迎使用优快云-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-12-07 14:44:34
178
原创 tornado4.5.2HTTP请求及响应流程
1.首先建立监听socket,监听socket事件,等待接受连接。2.客户端有连接请求,建立连接,调用连接处理函数,进入HTTPServer的handle_stream方法处理。3.实例化HTTP1ServerConnection, conn = HTTP1ServerConnection(stream, self.conn_params, context),调用conn.start_se
2017-12-04 14:09:07
810
原创 多个Django应用只启动一个uwsgi进程时经常出现502的问题
上篇文章中说了如何只启用一个uwsgi进程服务多个Django应用,虽然成功了,但是却有一个很大的问题:经常出现502。刷新一下说不定又好了,再刷又502,就这样循环往复。刚开始也不知道什么原因,一直调配置参数,不过基本没有什么改观,后来仔细查看uwsgi的启动参数,发现了一个参数:map-socket,这个参数的意义为:当你将一个uWSGI实例绑定到多个socket,你可以指定某些工作进
2014-03-31 10:47:11
1701
原创 单个uwsgi进程服务多个Django应用
之前使用Nginx+uwsgi部署Django应用的方式是每个应用对应一个uwsgi进程,如果项目过多就会非常不便,现在想使uwsgi像php-fpm那样只启动一个进程就能处理所有的请求,现总结方法如下:1.Nginx类似这么配置:location / { include uwsgi_params; uwsgi_pass 127.0.0.1:9090; #uw
2014-03-27 20:34:29
5255
基于Django的签到系统
2014-02-22
Django会员管理系统
2013-10-14
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人