摘要: redis基本命令 String set setex psetex mset mget getset getrange setrange setbit getbit bitcount bittop strlen incr incrfloat decr append Hash hset hmset h 阅读全文
posted @ 2018-03-28 16:41 East~L 阅读(523) 评论(0) 推荐(0)
摘要: WebSocket协议是基于TCP的一种新的协议。WebSocket最初在HTML5规范中被引用为TCP连接,作为基于TCP的套接字API的占位符。它实现了浏览器与服务器全双工(full-duplex)通信。其本质是保持TCP连接,在浏览器和服务端通过Socket进行通信。 本文将使用Python编 阅读全文
posted @ 2018-03-28 16:37 East~L 阅读(136) 评论(0) 推荐(0)
摘要: redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交 阅读全文
posted @ 2018-03-28 16:36 East~L 阅读(134) 评论(0) 推荐(0)
摘要: Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语 阅读全文
posted @ 2018-03-28 16:35 East~L 阅读(98) 评论(0) 推荐(0)
摘要: windows系统安装Python虚拟环境 首先保证你的系统已经安装好了Python 安装virtualenv C:\WINDOWS\system32>pip3 install virtualenv Collecting virtualenv Downloading virtualenv-15.1. 阅读全文
posted @ 2018-03-28 16:34 East~L 阅读(722) 评论(0) 推荐(0)
摘要: http://rabbitmq.mr-ping.com 中文文档 什么叫消息队列 消息(Message)是指在应用间传送的数据。消息可以非常简单,比如只包含文本字符串,也可以更复杂,可能包含嵌入对象。 消息队列(Message Queue)是一种应用间的通信方式,消息发送后可以立即返回,由消息系统来 阅读全文
posted @ 2018-03-28 16:31 East~L 阅读(252) 评论(0) 推荐(0)
摘要: content_type表将app名称与其中的表的关系进行保存 通过下边的示例来理解content_type的具体应用: models: from django.db import models from django.contrib.contenttypes.models import Conte 阅读全文
posted @ 2018-03-28 16:26 East~L 阅读(189) 评论(0) 推荐(0)
摘要: 1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得更好的性能,我们可以将表中字段的宽度设得尽可能小。 例如,在定义邮政编码这个字段时,如果将其设置为CHAR(255),显然给数据库增加了不必要 阅读全文
posted @ 2018-03-28 16:25 East~L 阅读(19011) 评论(0) 推荐(0)
摘要: MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB( 阅读全文
posted @ 2018-03-28 16:24 East~L 阅读(255) 评论(0) 推荐(0)
摘要: 1、简述Python上下文管理器原理,并用上下文管理器简单实现将"hello world"写入文件的功能。 Python中提供了上下文管理器的概念,可以通过上下文管理器来定义/控制代码块执行前的准备动作,以及执行后的收尾动作。例如with语句,with语句可以在代码块运行前进入一个运行时上下文(执行 阅读全文
posted @ 2018-03-28 16:23 East~L 阅读(108) 评论(0) 推荐(0)
摘要: 1.简要描述GIL对Python性能的影响 #GIL本质就是一把互斥锁,既然是互斥锁,所有互斥锁的本质都一样,都是将并发运行变成串行, # 以此来控制同一时间内共享数据只能被一个任务所修改,进而保证数据安全。有了GIL的存在,同一时刻同一进程中只有一个线程被执行 #但是对于计算来说cpu越多越好,由 阅读全文
posted @ 2018-03-28 16:22 East~L 阅读(126) 评论(0) 推荐(0)
摘要: Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展 一个最小应用 常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy 对象时候把 Flask 应用传递给它作为参数。 一 阅读全文
posted @ 2018-03-28 16:04 East~L 阅读(175) 评论(0) 推荐(0)
摘要: SQLAlchemy操作数据库建表时,无法像Django一样提供choice方法,我们开头导入SQLAlchemy-Utils来为我们提供这个功能 pip3 install sqlalchemy-utils from sqlalchemy_utils import ChoiceType Base = 阅读全文
posted @ 2018-03-28 16:03 East~L 阅读(856) 评论(0) 推荐(0)
摘要: 原生session: from sqlalchemy.orm import sessionmaker from sqlalchemy import create_engine from sqlalchemy应用.models import Users engine = create_engine( 阅读全文
posted @ 2018-03-28 16:02 East~L 阅读(2185) 评论(0) 推荐(0)
摘要: 一. 介绍 SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy 组成部分: Engine,框架的引 阅读全文
posted @ 2018-03-28 16:01 East~L 阅读(171) 评论(0) 推荐(0)
摘要: Flask框架中的信号基于blinker,其主要就是让开发者可是在flask请求过程中定制一些用户行为 ? 1 pip3 install blinker 1. 内置信号 request_started = _signals.signal('request-started') # 请求到来前执行 re 阅读全文
posted @ 2018-03-28 15:59 East~L 阅读(120) 评论(0) 推荐(0)
摘要: flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis memcached filesystem mongodb sqlalchmey 安装 pip3 install 阅读全文
posted @ 2018-03-28 15:58 East~L 阅读(160) 评论(0) 推荐(0)
摘要: 根据内置session原理可以进行session的定制: #!/usr/bin/env python # -*- coding:utf-8 -*- import uuid import json from flask.sessions import SessionInterface from fla 阅读全文
posted @ 2018-03-28 15:57 East~L 阅读(234) 评论(0) 推荐(0)
摘要: 内置session原理 请求到来 当请求进来之后,先执行Flask对象的 __call__ 方法 def wsgi_app(self, environ, start_response): # 获取请求相关数据,并进行封装和加工 ctx = self.request_context(environ) 阅读全文
posted @ 2018-03-28 15:56 East~L 阅读(1201) 评论(0) 推荐(0)
摘要: from flask import Flask,Markup,render_template,request,redirect from wtforms.form import Form from wtforms.fields import core from wtforms import widg 阅读全文
posted @ 2018-03-28 15:54 East~L 阅读(201) 评论(0) 推荐(0)
摘要: class LoginForm(Form): #首先执行后得到的结果是UnboundField()对象 name=simple.StringField( label='用户名', validators=[ validators.DataRequired(message='用户名不能为空'), ], 阅读全文
posted @ 2018-03-28 15:53 East~L 阅读(787) 评论(0) 推荐(0)
摘要: 基本常识 1.对象是类创建,创建对象时候类的__init__方法自动执行,对象()执行类的 __call__ 方法 2.类是type创建,创建类时候type的__init__方法自动执行,类() 执行type的 __call__方法(类的__new__方法,类的__init__方法) # 第0步: 阅读全文
posted @ 2018-03-28 15:49 East~L 阅读(130) 评论(0) 推荐(0)
摘要: WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 下载 pip3 install wtforms 下面以一个登录和注册的示例来说明 登录 from wtforms.fields import simple from wtforms.fields import c 阅读全文
posted @ 2018-03-28 15:46 East~L 阅读(90) 评论(0) 推荐(0)
摘要: 执行app.run()方法: def run(self, host=None, port=None, debug=None, **options): from werkzeug.serving import run_simple if host is None: host = '127.0.0.1' 阅读全文
posted @ 2018-03-28 15:44 East~L 阅读(169) 评论(0) 推荐(0)
摘要: flask的request和session设置方式比较新颖,如果没有这种方式,那么就只能通过参数的传递。 flask是如何做的呢? 1.Python 实现的本地线程 保证即使是多个线程,自己的值也是互相隔离。 import threading local_values = threading.loc 阅读全文
posted @ 2018-03-28 15:43 East~L 阅读(503) 评论(0) 推荐(0)
摘要: Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返 阅读全文
posted @ 2018-03-28 15:42 East~L 阅读(177) 评论(0) 推荐(0)
摘要: 一 介绍 原来scrapy的Scheduler维护的是本机的任务队列(存放Request对象及其回调函数等信息)+本机的去重队列(存放访问过的url地址) 所以实现分布式爬取的关键就是,找一台专门的主机上运行一个共享的队列比如Redis,然后重写Scrapy的Scheduler,让新的Schedul 阅读全文
posted @ 2018-03-28 15:20 East~L 阅读(120) 评论(0) 推荐(0)
摘要: what数据结构? 数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。 简单来说,数据结构就是设计数据以何种方式组织并存储在计算机中。 比如:列表、集合与字典等都是一种数据结构。 N.Wirth: “程序=数据结构+算法” 数据结构按照其逻辑结构可分为线性结构 阅读全文
posted @ 2018-03-28 15:15 East~L 阅读(234) 评论(0) 推荐(0)
摘要: 一、时间复杂度 用来评估算法运行效率的一个东西 print('Hello World') O(1) for i in range(n): print('Hello World') O(n) for i in range(n): for j in range(n): print('Hello Worl 阅读全文
posted @ 2018-03-28 15:07 East~L 阅读(254) 评论(0) 推荐(0)
摘要: 一、责任链模式 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。 角色: 抽象处理者(Handler) 具体处理者(ConcreteHandler) 客户端(Client) 例: 请假部门批准:leade 阅读全文
posted @ 2018-03-28 15:04 East~L 阅读(575) 评论(0) 推荐(0)
摘要: 一、适配器模式 将一个类的接口转换成客户希望的另一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 角色: 目标接口(Target) 待适配的类(Adaptee) 适配器(Adapter) 两种实现方式: 类适配器:使用多继承 对象适配器:使用组合 适用场景: 想使用一个 阅读全文
posted @ 2018-03-28 15:03 East~L 阅读(188) 评论(0) 推荐(0)
摘要: 一、什么是设计模式 Christopher Alexander:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样你就能一次又一次地使用该方案而不必做重复劳动。” 每一个设计模式系统地命名、解释和评价了面向对象系统中一个重要的和重复出现的设计。 设计模式四个基本要素 阅读全文
posted @ 2018-03-28 15:01 East~L 阅读(947) 评论(0) 推荐(0)
摘要: Matplotlib:绘图和可视化 Matplotlib是一个强大的Python绘图和数据可视化的工具包。 安装方法:pip install matplotlib 引用方法:import matplotlib.pyplot as plt 绘图函数:plt.plot() 显示图像:plt.show() 阅读全文
posted @ 2018-03-28 14:56 East~L 阅读(165) 评论(0) 推荐(0)
摘要: 一 、ipython的简单使用 IPython:交互式的Python命令行 丰富的快捷键 TAB键自动完成 ?:内省、命名空间搜索 !:执行系统命令 魔术命令:以%开始的命令 %run:执行文件代码 %paste:执行剪贴板代码 %timeit:评估运行时间 %pdb:自动调试 使用命令历史 获取输 阅读全文
posted @ 2018-03-28 14:53 East~L 阅读(191) 评论(0) 推荐(0)