摘要: Nginx除了可以用作web服务器外,他还可以用来做高性能的反向代理服务器,它能提供稳定高效的负载均衡解决方案。nginx可以用轮询、IP哈希、URL哈希等方式调度后端服务器,同时也能提供健康检查功能。目前有众多公司均已经部署使用nginx实现基于七层的负载均衡功能。 1)Nginx负载均衡为了实现 阅读全文
posted @ 2018-10-29 10:26 shuyang 阅读(336) 评论(0) 推荐(0) 编辑
摘要: 一、认识python python初识(一) python初识(二) python初识(三) 二、pyhton工具使用 centos7 安装python3.6 及模块安装演示 pycharm远程调试 PyCharm快捷键使用 python+Nginx+uWSGI使用说明 三、python模块使用 p 阅读全文
posted @ 2018-10-24 12:56 shuyang 阅读(690) 评论(0) 推荐(0) 编辑
摘要: 一、日志模块logging模块调用 1、日志模块使用原理 2、日志模块封装使用 二、set并集交集的使用 三、rsa加密 阅读全文
posted @ 2018-10-23 11:38 shuyang 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 本文源码寄方于github:https://github.com/w392807287/Design_pattern_of_python 参考文献: 《大话设计模式》——吴强 《Python设计模式》——pythontip.com 《23种设计模式》——http://www.cnblogs.com/ 阅读全文
posted @ 2018-10-15 13:52 shuyang 阅读(298) 评论(0) 推荐(0) 编辑
摘要: 一、Python中的异常栈跟踪 之前在做Java的时候,异常对象默认就包含stacktrace相关的信息,通过异常对象的相关方法printStackTrace()和getStackTrace()等方法就可以取到异常栈信息,能打印到log辅助调试或者做一些别的事情。但是到了Python,在2.x中,异 阅读全文
posted @ 2018-10-15 10:53 shuyang 阅读(7061) 评论(0) 推荐(0) 编辑
摘要: 简介 virtualenv 是一个创建隔绝的Python环境的工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。 安装 基本使用 $ cd my_project_dir $ virtualenv venv #venv为虚拟环境目录名,目录名自定义 阅读全文
posted @ 2018-06-27 15:09 shuyang 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 一、安装xlrd模块 到python官网下载http://pypi.python.org/pypi/xlrd模块安装,前提是已经安装了python 环境。 二、使用介绍 1、导入模块 import xlrd 2、打开Excel文件读取数据 data = xlrd.open_workbook('exc 阅读全文
posted @ 2018-06-27 15:00 shuyang 阅读(307) 评论(0) 推荐(0) 编辑
摘要: 简介 作用:发送和接收异步系统信号 信号是一个操作系统特性,它提供了一个途径可以通知程序发生了一个事件并异步处理这个事件。信号可以由系统本身生成,也可以从一个进程发送到另一个进程。 由于信号会中断程序的正常控制流,如果在中间接收到信号,有些操作(特别是I/O操作)可能会发生错误。 接收信号 sign 阅读全文
posted @ 2018-06-27 14:56 shuyang 阅读(1871) 评论(0) 推荐(0) 编辑
摘要: 简介 shutil模块提供了大量的文件的高级操作。特别针对文件拷贝和删除,主要功能为目录和文件操作以及压缩操作。对单个文件的操作也可参见os模块。 注意即便是更高级别的文件复制函数(shutil.copy(),shutil.copy2())也不能复制所有文件的元数据。这意味着在POSIX平台上,文件 阅读全文
posted @ 2018-06-27 14:19 shuyang 阅读(500) 评论(0) 推荐(0) 编辑
摘要: 简述 subprocess意在替代其他几个老的模块或者函数,比如:os.system os.spawn* os.popen* popen2.* commands.*subprocess最简单的用法就是调用shell命令了,另外也可以调用程序,并且可以通过stdout,stdin和stderr进行交互 阅读全文
posted @ 2018-06-27 11:35 shuyang 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 环境准备 1、系统版本 CentOS7.5 + docker ee 2、配置阿里云yum源 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo wget -O /etc/yum. 阅读全文
posted @ 2018-06-25 20:14 shuyang 阅读(735) 评论(0) 推荐(0) 编辑
摘要: 一、什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表 阅读全文
posted @ 2018-05-28 17:37 shuyang 阅读(397) 评论(0) 推荐(0) 编辑
摘要: $ git init // 初始化一个Git仓库$ git status // 查看仓库的状态$ git add . // 将所有修改添加到暂存区$ git add * // Ant风格添加修改$ git add *Controller // 将以Controller结尾的文件的所有修改添加到暂存区 阅读全文
posted @ 2018-05-21 17:36 shuyang 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、celery队列简介 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery. 1.1使用场景 1.你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果 阅读全文
posted @ 2018-05-21 15:01 shuyang 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 一、redis简介 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add 阅读全文
posted @ 2018-05-21 11:40 shuyang 阅读(557) 评论(0) 推荐(0) 编辑
摘要: 前面已经介绍的够多了,这里来让我们写一些完整的实例来梳理一下。 强调一下,sls文件的抒写格式都是"-"后面跟一个空格,然后后面跟参数: 然后后面再跟一个空格,然后是要填写的值。但是粘贴上面中间空格好多...... 一、初始化实例 一般一台新机器在交付使用之前,都要做一些初始化优化操作,如调整参数啊 阅读全文
posted @ 2018-05-18 11:34 shuyang 阅读(488) 评论(0) 推荐(0) 编辑
摘要: 一、管理对象 saltstack系统中管理对象叫做Target,在master上可以采用不同的Tatget去管理不同的minion。这些Target都是通过去管理和匹配Minion的ID来做一些集合。 1.1 -E, --pcre : 正则匹配 # salt -E '[a-z].*' test.pi 阅读全文
posted @ 2018-05-18 11:29 shuyang 阅读(1405) 评论(0) 推荐(0) 编辑
摘要: 一、saltstack的内置模块汇总 acl, aliases, alternatives, apache, archive, artifactory, blockdev, btrfs, buildout, cloud, cmd, composer, config, container_resour 阅读全文
posted @ 2018-05-17 16:50 shuyang 阅读(801) 评论(0) 推荐(0) 编辑
摘要: 一、SaltStack介绍 1.1 saltstack简介: saltstack是基于python开发的一套C/S架构配置管理工具,它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理。ZeroMQ使SaltStack能快速在成千上万台机器上进行各种操作,之前 阅读全文
posted @ 2018-05-17 16:13 shuyang 阅读(6094) 评论(0) 推荐(0) 编辑
摘要: rabbitmq.config详细配置参数 Key Documentation tcp_listeners 用于监听 AMQP连接的端口列表(无SSL). 可以包含整数 (即"监听所有接口")或者元组如 {"127.0.0.1", 5672} 用于监听一个或多个接口. Default: [5672] 阅读全文
posted @ 2018-05-16 14:38 shuyang 阅读(481) 评论(0) 推荐(0) 编辑
摘要: 一、介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy 组成部分: Engine,框架的引擎 阅读全文
posted @ 2018-05-14 15:14 shuyang 阅读(551) 评论(0) 推荐(0) 编辑
摘要: 一、WebSocket理论部分 1、websocket是什么 Websocket是html5提出的一个协议规范,参考rfc6455。 websocket约定了一个通信的规范,通过一个握手的机制,客户端(浏览器)和服务器(webserver)之间能建立一个类似tcp的连接,从而方便c-s之间的通信。在 阅读全文
posted @ 2018-05-14 11:39 shuyang 阅读(4776) 评论(1) 推荐(0) 编辑
摘要: 轮询 ajax轮询 ,ajax轮询 的原理非常简单,让浏览器隔个几秒就发送一次请求,询问服务器是否有新信息。 1、后端代码 2、前端代码 长轮询 long poll 其实原理跟 ajax轮询 差不多,都是采用轮询的方式,不过采取的是阻塞模型(一直打电话,没收到就不挂电话),也就是说,客户端发起连接后 阅读全文
posted @ 2018-05-08 20:01 shuyang 阅读(7581) 评论(0) 推荐(0) 编辑
摘要: 摘要:在慢速网络上Tomcat线程数开到300以上的水平,不配APR,基本上300个线程狠快就会用满,以后的请求就只好等待。但是配上APR之后,Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输操作,这时并发的线程数量明显下降,从原来的300可能会马 阅读全文
posted @ 2018-05-03 12:56 shuyang 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 应用技术点 python之__setattr__ python之threading.local python之偏函数 python之__setattr__ python之threading.local python之偏函数 flask源码上下文管理 1、综述过程 将请求对象压入栈 1.请求进入 __ 阅读全文
posted @ 2018-04-26 19:12 shuyang 阅读(324) 评论(0) 推荐(0) 编辑
摘要: #__setattr__ class Foo(object): def set(self,k,v): pass def __setattr__(self, key, value): print(key,value) pass obj = Foo() obj.set('x',123) obj.x = 123 #用__setattr_... 阅读全文
posted @ 2018-04-26 16:00 shuyang 阅读(3248) 评论(0) 推荐(0) 编辑
摘要: from flask import Flask app = Flask(__name__) @app.route('/index') def index(): return 'Hello World' class Middleware(o... 阅读全文
posted @ 2018-04-24 17:07 shuyang 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 让我们先来看一个简单的例子,假设有下面这样一个蓝图(是关于用户主页的): 从上面我们可以看出,所有的路由都是以user_url_slug开头的,若这样写代码的话,会增加代码的复杂性、降低可维护性。为了解决这个问题,我们可以在蓝图中定义动态的URL前缀。让我们把蓝图定义改成这样: 或者在注册到app时 阅读全文
posted @ 2018-04-24 17:03 shuyang 阅读(1677) 评论(0) 推荐(0) 编辑
摘要: 安装环境 Remote: CentOS 7.4 x64 (django.example.com) Python: Python3.6.5 Django: Django 2.0.4 nWSGI: uwsgi-2.0.15 Nginx: nginx- 1.10.2-1.el6 一. 系统环境配置 1.关 阅读全文
posted @ 2018-04-24 16:05 shuyang 阅读(895) 评论(0) 推荐(0) 编辑
摘要: 简述: threading.local是全局变量但是它的值却在当前调用它的线程当中 作用: 在threading module中,有一个非常特别的类local。一旦在主线程实例化了一个local,它会一直活在主线程中,并且又主线程启动的子线程调用这个local实例时,它的值将会保存在相应的子线程的字 阅读全文
posted @ 2018-04-24 13:40 shuyang 阅读(1547) 评论(0) 推荐(0) 编辑
摘要: 摘要:python的设计核心原则就是简洁——在这种原则的指导下,诞生了lambda表达式和偏函数:二者都让函数调用变得简洁。本文主要为你介绍偏函数的应用。 为什么要用偏函数 如果我们定义了一个函数,比如说将四个数相加add(one ,two,three,four),上层有很多函数需要调用这个函数。在 阅读全文
posted @ 2018-04-24 11:01 shuyang 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 目录: 涉及知识点 Flask框架原理 简单示例 路由系统原理源码分析 请求流程简单源码分析 响应流程简单源码分析 session简单源码分析 涉及知识点 1、装饰器 闭包思想 def wapper(func): def inner(*args,**kwargs): return func(*arg 阅读全文
posted @ 2018-04-23 11:53 shuyang 阅读(427) 评论(0) 推荐(0) 编辑
摘要: Python中类的魔术方法 在Python中以两个下划线开头的方法,__init__、__str__、__doc__、__new__等,被称为"魔术方法"(Magic methods)。魔术方法在类或对象的某些事件出发后会自动执行,如果希望根据自己的程序定制自己特殊功能的类,那么就需要对这些方法进行 阅读全文
posted @ 2018-04-19 15:41 shuyang 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 一、SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 二、scoped_session 三、Flask-SQLAlchemy和Flask-Migrate组件 详说注册SQLAlchemy的两种方式 阅读全文
posted @ 2018-04-13 09:55 shuyang 阅读(461) 评论(0) 推荐(0) 编辑
摘要: 一、wtforms源码流程 1、实例化流程分析 # 源码流程 1. 执行type的 __call__ 方法,读取字段到静态字段 cls._unbound_fields 中; meta类读取到cls._wtforms_meta中 2. 执行构造方法 a. 循环cls._unbound_fields中的 阅读全文
posted @ 2018-04-13 09:44 shuyang 阅读(303) 评论(0) 推荐(0) 编辑
摘要: Flask Script扩展提供向Flask插入外部脚本的功能,包括运行一个开发用的服务器,一个定制的Python shell,设置数据库的脚本,cronjobs,及其他运行在web应用之外的命令行任务;使得脚本和系统分开; Flask Script和Flask本身的工作方式类似,只需定义和添加从命 阅读全文
posted @ 2018-04-13 09:39 shuyang 阅读(206) 评论(0) 推荐(0) 编辑
摘要: 一、简介 flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis:保存数据的一种工具,五大类型。非关系型数据库 memcached filesystem mongodb 阅读全文
posted @ 2018-04-12 16:42 shuyang 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 一、简单介绍flask中的wtforms WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 安装: pip3 install wtforms 二、简单使用wtforms 1、用户登录 具体代码: login.html 2、用户注册 register.html 3 阅读全文
posted @ 2018-04-12 16:29 shuyang 阅读(394) 评论(0) 推荐(0) 编辑
摘要: 一、实例化补充 instance_path和instance_relative_config是配合来用的。 这两个参数是用来找配置文件的,当用app.config.from_pyfile('settings.py')这种方式导入配置文件的时候会用到 如果设置了instance_releative_c 阅读全文
posted @ 2018-04-12 16:10 shuyang 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 一、flask分页组件 二、使用组件 pager.html 阅读全文
posted @ 2018-04-12 15:50 shuyang 阅读(777) 评论(0) 推荐(0) 编辑