Fork me on GitHub

03 2018 档案

摘要:Django 知识点补充 1 Django如何在Model保存前做一定的固定操作,比如写一条日志 (1)利用Django的Model的Signal Dispatcher, 通过django.db.models.signals.pre_save()方法,在事件发生前,发射触发信号, (1) 信号.co 阅读全文
posted @ 2018-03-29 18:04 派对动物 阅读(336) 评论(0) 推荐(0)
摘要:Django框架的服务器架构一般是 Nginx + uWSGI + Django (1)一些基本概念 1 WSGI协议,uwsgi协议 WSGI协议(通讯协议):Python用于Web开发的协议(用于处理Web服务器和应用程序(APP)的交互信息) (把http通讯的过程抽象出来(请求数据,响应数据 阅读全文
posted @ 2018-03-28 16:30 派对动物 阅读(4062) 评论(0) 推荐(1)
摘要:Memcached 补充 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写 阅读全文
posted @ 2018-03-28 14:14 派对动物 阅读(156) 评论(0) 推荐(0)
摘要:(1)websocket 协议 与 http协议 websocket 协议,双工通道 socket连接不断开 http 协议 ,只能请求响应 (用户主动获取) socket连接断开 都是基于socket 客户端都是浏览器 (2)轮询 一般用户量少的 都是用 websocket来做即时通讯 轮询 一直 阅读全文
posted @ 2018-03-27 23:46 派对动物 阅读(427) 评论(0) 推荐(0)
摘要:1 装饰器 + Future 从而实现Tornado的异步非阻塞 class AsyncHandler(tornado.web.RequestHandler): @gen.coroutine def get(self): future = Future() future.add_done_callb 阅读全文
posted @ 2018-03-27 23:40 派对动物 阅读(298) 评论(0) 推荐(0)
摘要:Tornado 自定义session,与一致性哈希 ,基于redis 构建分布式 session import tornado.ioloop import tornado.web from myhash import ring create_session_id = 'sasd' 随机生成的 ses 阅读全文
posted @ 2018-03-26 22:24 派对动物 阅读(201) 评论(0) 推荐(0)
摘要:functools 补充 1 wraps 在编写装饰器时,在实现前加入 @functools.wraps(func) 可以保证装饰器不会对被装饰函数造成影响。wraps 保存被装饰函数的原信息 def decorator(f) wraps(f) def inner( args, kwargs): 2 阅读全文
posted @ 2018-03-26 09:53 派对动物 阅读(212) 评论(0) 推荐(0)
摘要:Tornado 概述 1 基本概念 像其他web框架一样, tornado也包括了以下内容: 基本构成: a 路由系统 b 视图 获取请求数据 返回数据 c 模板语言 模板基本使用 自定义函数 利用组件自己完成 分页, 中间件等扩展功能 概念 Tornado 是 FriendFeed 使用的可扩展的 阅读全文
posted @ 2018-03-24 17:31 派对动物 阅读(324) 评论(0) 推荐(0)
摘要:" 1 Tornado基本概念 " " 2 Tornado自定义session 与 一致性哈希,构建分布式session " " 3 Tornado 异步非阻塞 " 阅读全文
posted @ 2018-03-24 17:29 派对动物 阅读(298) 评论(0) 推荐(0)
摘要:Django项目部署 Django的settings中 settings ALLOWED_HOST = ['个人的IP'] DEBUG = False (1) Django代码 拷贝到服务器 runserver 0.0.0.0:9002 (自带的wsgiref 性能低) (2) 通过uwsgi pi 阅读全文
posted @ 2018-03-24 12:06 派对动物 阅读(191) 评论(0) 推荐(0)
摘要:爬虫与反爬 (1) 基本的概念 爬虫: 自动获取网站数据的程序 关键是 定时,定量的,批量的获取 反爬虫: 使用技术手段 防止爬虫程序的方法 存在误伤,即 反爬技术 将普通用户识别为爬虫 如果误伤高 效果再好也不能使用 例子: 比如 限制 ip === 用户的ip 一般都是 局域网内动态分配的, 一 阅读全文
posted @ 2018-03-22 11:10 派对动物 阅读(582) 评论(0) 推荐(0)
摘要:字符串编码详解 计算机只能处理数字,文本转换成数字才能处理。 计算机中8个bit作为一个字节byte,所以一个字节最大的表示数字就是255 ASCII码 一个字节表示 美国的标准编码 最多表示255个字符 中国 GB2312 用两个字节表示一个汉字,把ascii码也包含进去 unicode 全球统一 阅读全文
posted @ 2018-03-21 23:03 派对动物 阅读(413) 评论(0) 推荐(0)
摘要:>> (1) 基本概念 >> (2) 爬虫与反爬 >> (3) 基本概念 >> (4) 基本概念 阅读全文
posted @ 2018-03-21 22:47 派对动物 阅读(156) 评论(0) 推荐(0)
摘要:再看Scrapy(1) 基本概念 1 准备 安装scrapy: 国内镜像源(官方的pypi不稳定)安装 pip3 install i https://pypi.douban.com/simple/ scrapy 安装virtualenvwrapper: 下载 pip3 install virtual 阅读全文
posted @ 2018-03-21 22:42 派对动物 阅读(181) 评论(0) 推荐(0)
摘要:Linux安装python3 1 安装依赖环境: yum y install zlib devel bzip2 devel openssl devel ncurses devel sqlite devel readline devel tk devel gdbm devel db4 devel li 阅读全文
posted @ 2018-03-21 21:01 派对动物 阅读(184) 评论(0) 推荐(0)
摘要:Redis 补充 Redis 的主要用途 数据库 缓存和消息中间件 相当于一个字典 数据库切换 select 1 (默认36个数据库 默认在0) 1 基本数据类型 字符串 散列 hashes 列表 集合 有序集合 string 是基本数据类型 是 redis的基本数据类型 最大能存储 512 MB的 阅读全文
posted @ 2018-03-21 17:02 派对动物 阅读(277) 评论(0) 推荐(0)
摘要:python 魔法方法补充 1 __getattribute__ (print(ob.name) obj.func())当访问对象的属性或者是方法的时候触发 class F(object): def __init__(self): self.name = 'A' def hello(self): p 阅读全文
posted @ 2018-03-21 16:52 派对动物 阅读(6585) 评论(0) 推荐(1)
摘要:1 mongodb 概述 启动mongo 1 数据库操作 没有数据的 集合 和 数据库不会显示 db 查看当前的数据库名称; 所有物理上存在的数据库 db.stats() 查看当前的数据库信息; show dbs 查看所有的数据库 use day1 直接创建 并切换数据库 db.dropDataba 阅读全文
posted @ 2018-03-20 16:49 派对动物 阅读(315) 评论(0) 推荐(0)
摘要:Redis补充 (1)redis基本概念 redis是一个key value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希 类型)。这些数据类型都支持pu 阅读全文
posted @ 2018-03-19 11:59 派对动物 阅读(210) 评论(0) 推荐(0)
摘要:数据库基础 非关系型数据库 MongoDB 和 redis 1 NoSQL简介 访问量增加,频繁的读写 直接访问(硬盘)物理级别的数据,会很慢 ,关系型数据库的压力会很大 所以,需要内存级的读写操作,作为缓存 1 NoSQL的使用 为了加快读写操作时间 减少服务器压力 先访问(非关系型数据库)缓存中 阅读全文
posted @ 2018-03-19 11:10 派对动物 阅读(390) 评论(0) 推荐(0)
摘要:SQLAlchemy SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在 DB API之上,使用关系对象映射进行数据库操作,也就是:将类和对象转换成SQL,然后使用数据API执行SQL并获取执行结果。 pip3 install sqlalchemy 组成部分: Engine,框 阅读全文
posted @ 2018-03-17 17:35 派对动物 阅读(243) 评论(0) 推荐(0)
摘要:WTForms组件 WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。 注意: from wtforms import Form 和 from flask_wtf import FlaskForm 需要设置csfr 安装 pip3 install wtforms 阅读全文
posted @ 2018-03-12 21:29 派对动物 阅读(913) 评论(0) 推荐(0)
摘要:Flask 信号 blinker Flask框架中的信号基于blinker,可以让开发者在flask请求过程中 定制一些用户行为执行。 在请求前后,模板渲染前后,上下文前后,异常 的时候 安装: pip install blinker 1 Flask的内置信号: 内部通过 send方法 触发信号 2 阅读全文
posted @ 2018-03-12 21:05 派对动物 阅读(358) 评论(0) 推荐(0)
摘要:session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:‘xxxxxx’}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证; 注意 :Flask中的session是存在浏览器中 默认key是session(加密的cookie), 也 阅读全文
posted @ 2018-03-12 17:03 派对动物 阅读(10965) 评论(0) 推荐(1)
摘要:Flask 的整体流程 封装 requestContext 对象, full_dispatch_request(视图函数 执行), response返回 从app.run() 开始 Flask的call方法 wsgi_app (封装RequestContext(request,session )对象 阅读全文
posted @ 2018-03-12 16:34 派对动物
摘要:>> 1 python的单例模式--解决多线程的单例模式失效 >> 2 python 生成唯一字符串UUID与MD5 >>3 python开发 虚拟环境的搭建 >>4 git 命令 >>5 ECMAScript 6 简介 >>6 nodejs--vue >>7 消息推送 >> 8 Python的魔法 阅读全文
posted @ 2018-03-12 15:15 派对动物 阅读(238) 评论(0) 推荐(0)
摘要:Flask session,request,current_app的传递 请求上下文的作用 封装请求相关得数据(request,session) 请求上下文 request session request local类 {线程,协程的唯一ID:{stack:[RequestContext(reque 阅读全文
posted @ 2018-03-11 18:00 派对动物 阅读(1922) 评论(0) 推荐(0)
摘要:Flask 的 数据库连接 与 DBUtils 数据库连接池 本地线程:thread_local 为每个线程创建存储数据的空间,用于线程之间的数据隔离 否则多个线程同时访问,会使得数据混乱 1 Flask 连接数据库 的方法 pymysql 依赖 SQLArchemy 数据库连接的方案 1 每次请求 阅读全文
posted @ 2018-03-11 16:30 派对动物 阅读(352) 评论(0) 推荐(0)
摘要:Flask 的 请求扩展 与 中间件 flask 可以通过 扩展(装饰器)来实现类似于django 中间件的功能 类似于django 的中间件, 在执行视图函数之前, 之后的执行某些功能 1 @app.before_first_request 执行一次,第一次请求结束,在第一批函数执行后 就不再执行 阅读全文
posted @ 2018-03-10 20:11 派对动物 阅读(2485) 评论(0) 推荐(1)
摘要:Flask的消息机制flash message是一个基于session实现的用于保存数据的集合,其特点是:使用一次就删除。 原理就是 操作成功 session['操作'] = 'msg' 设置 session.get('操作','') 获取 显示 session.pop('操作') 删除 1 基本使 阅读全文
posted @ 2018-03-10 19:52 派对动物 阅读(5515) 评论(0) 推荐(1)
摘要:Flask的配置文件 与 session 配置文件 flask中的配置文件是一个flask.config.Config对象(继承字典) 默认配置为: { 'DEBUG': get_debug_flag(default=False), 是否开启Debug模式 'TESTING': False, 是否开 阅读全文
posted @ 2018-03-10 19:32 派对动物 阅读(2170) 评论(0) 推荐(0)
摘要:Flask 的 template模板 与 jinja2语法 Flask使用的是Jinja2模板,所以其语法和Django基本无差别 1、模板基本数据的渲染 变量 {{..}} 列表 {% for item in List %}{{item}}{% endfor %} 字典 {% for k,v in 阅读全文
posted @ 2018-03-10 18:33 派对动物 阅读(4681) 评论(0) 推荐(0)
摘要:Flask的请求与响应 1 请求相关信息 request.method 请求方法 request.args get 请求的参数 request.form post请求的参数 request.values 所有的请求参数 request.args.get('id') request.args.getl 阅读全文
posted @ 2018-03-10 16:41 派对动物 阅读(1385) 评论(0) 推荐(0)
摘要:Flask的路由系统 本质: 带参数的装饰器 传递函数后 执行 add_url_rule 方法 将 函数 和 url 封装到一个 Rule对象 将Rule对象 添加到 app.url_map(Map对象) 注意:装饰器要放在路由的上方 注意装饰器的执行顺序 1 路由格式以及参数 @app.route 阅读全文
posted @ 2018-03-10 14:30 派对动物 阅读(829) 评论(0) 推荐(0)
摘要:Flask的简单认识 Flask是轻量级的框架,适用于简单的程序 与Django的比较: Django: 无socket,中间件,路由,视图(CBV,FBV),模板,ORM, cookie,session,缓存,序列化,Form,信号..... flask: 无socket,中间件(需要扩展),路由 阅读全文
posted @ 2018-03-09 17:43 派对动物 阅读(273) 评论(0) 推荐(0)
摘要:Django的model查询操作 与 查询性能优化 1 如何 在做ORM查询时 查看SQl的执行情况 (1) 最底层的 django.db.connection 在 django shell 中使用 python manage.py shell from django.db import conne 阅读全文
posted @ 2018-03-09 14:54 派对动物
摘要:1 Python使用UUID库生成唯一ID UUID是128位的全局唯一标识符,通常由32字节的字符串表示,保证时间和空间的唯一性 通过MAC地址、时间戳、命名空间、随机数、伪随机数来保证生成ID的唯一性 用法: uuid1()——基于时间戳 uuid3()——基于名字的MD5散列值 通过计算名字和 阅读全文
posted @ 2018-03-09 12:26 派对动物 阅读(9427) 评论(0) 推荐(0)
摘要:django内置的content type组件, 记录了项目中所有model元数据的表 可以通过一个ContentType表的id和一个具体表中的id找到任何记录,及先通过ContenType表的id可以得到某个model,再通过model的id得到具体的对象 帮助开发者 连表操作 class Co 阅读全文
posted @ 2018-03-09 10:11 派对动物
摘要:邮箱发送邮件 import smtlib from email.mime.text import MIMEText from email.utils import formataddr msg = MIMEText('邮件内容','plain','utf 8') 发送内容 msg['From'] = 阅读全文
posted @ 2018-03-08 21:09 派对动物
摘要:如何在python中进行类的约束 使某些类必须有一些方法 1 python 的抽象类实现 === 约束性不高 Python是 解释性语言 from abc import ABCMeta from abc import abstractmethod class Base(ABCMeta); def s 阅读全文
posted @ 2018-03-08 21:07 派对动物
摘要:Django与数据库操作 数据库连接的方法 web 框架 django 自己内部实现 (ORM) + pymysql(连接) Flask,tornado pymysql SQLArchemy (ORM) ORM 操作简单 (只把对象和类的操作 生成对应的sql语句) 创建,修改 数据表的时候简单 速 阅读全文
posted @ 2018-03-07 19:42 派对动物 阅读(178) 评论(0) 推荐(0)
摘要:xadmin的使用及注意点 1 基本使用 注意 xadmin 1 下载与安装 pip 编码问题 解决方法 "DJANGO 1.9 安装 XADMIN 遇到的问题" 本地 zip 方法安装 (注意,依赖包的下载) 2 部署 ! installed apps 中 添加 'xadmin', 'crispy 阅读全文
posted @ 2018-03-05 22:54 派对动物 阅读(4488) 评论(0) 推荐(0)
摘要:Django 常见的异常 1 'WSGIRequest' object has no attribute 'user' Django版本的问题,1.10之前,中间件的key为MIDDLEWARE_CLASSES, 1.10之后,为MIDDLEWARE。注意开发环境和其他环境的版本的不一致。 新旧版本 阅读全文
posted @ 2018-03-05 22:42 派对动物
摘要:网站 安全 常见的 web 攻击 1 sql 注入(常用的攻击性)(django的orm是做过sql防护处理的) 危害: 非法读取,篡改,删除数据库中的数据 盗取用户的各类敏感信息。获取利益 通过修改数据库来修改网页的内容 注入木马等 原理 :在输入中 加入 sql 语句 一定成立的 def pos 阅读全文
posted @ 2018-03-05 09:22 派对动物
摘要:nodejs vue 基础知识认识: 前端工程化 最近才兴起,nodejs(包的管理更加方便),webpack 数据双向绑定 mvm 数据驱动vue,vue改变数据 组件化开发 vue 中的常见 概念: webpack 目的:把所有的 vue文件或者其他文件 转换成 js文件 vue (框架),vu 阅读全文
posted @ 2018-03-05 09:00 派对动物 阅读(240) 评论(0) 推荐(0)
摘要:DRF 中 解决跨域 与 预检 1 跨域 浏览器的同源策略: 对ajax请求进行阻拦 ps: 对href src属性 不限制 只有浏览器会阻止,requests模块不会存在跨域 (1)解决方案1 JSONP 只有get ajax xhr = new XMLHttpResponse(): xhr.op 阅读全文
posted @ 2018-03-03 19:45 派对动物
摘要:DRF 的视图,路由和渲染器 1 视图 简单的增删改查 : ModelViewSet; 复杂的操作使用APIView 和 GenericViewSet APIView(View) class HomeView(APIView): def get(self,request, args, kwargs) 阅读全文
posted @ 2018-03-03 17:55 派对动物
摘要:DRF 返回数据的封装,和分页 1 返回值的 封装 自定义一个类,初始化基本的返回数据信息 class BaseResponse(object): """ 初始化基本的返回数据信息 """ def __init__(self,status=True,data=None,error=None): se 阅读全文
posted @ 2018-03-03 15:20 派对动物
摘要:DRF 的 版本,解析器,与序列化 补充 配置文件中的 类的调用: (字符串) v1 = ["view.xx.apth.Role","view.xx.apth.Role"] for item in v1: m = importlib.import_module('view.xx.apth') cls 阅读全文
posted @ 2018-03-02 19:38 派对动物
摘要:方法总结 认证 类 authenticate/authenticate_header 返回值 None,(user,auth),异常 配置 视图 全局 权限 类 has_permission/has_object_permission 返回值 True,False,exceptoions.Permi 阅读全文
posted @ 2018-03-01 21:41 派对动物 阅读(268) 评论(0) 推荐(0)
摘要:DRF 用户频率限制 为什么要限流 1 防爬虫 匿名用户 无法限制,代理 已登录,用户名限制;买代理 2 提供服务(接口 不同用户的访问次数不一样) vip 限制访问次数 BaseThrottle 自定义 allow_reques,wait t实现用户 ip 访问限制 RECORD = {} 定义在 阅读全文
posted @ 2018-03-01 20:40 派对动物
摘要:DRF 权限的流程 django rest framework , 入口是 dispatch ,然后依次 封装请求 处理版本 认证 权限 限制访问频率 (1)auth需要通过token唯一标识来认证 (2)通过auth认证后得到,用户user信息,但是没有admin的权限 权限用来做进一步做职责的划 阅读全文
posted @ 2018-03-01 20:27 派对动物
摘要:RESTful api 与 Django的 restfulframework 1 restful api 的基本概念 一类的资源使用一个url,不同的操作通过 请求方式处理 api 就是一个url 两个用途: 为别人提供服务(发送邮件或者是发短信, 运营商提供接口, 客户通过api提交数据) 前后端 阅读全文
posted @ 2018-03-01 19:55 派对动物
摘要:>> (1)RESTful api 规范 和 DRF 的基本介绍 >> (2)DRF 的 认证系统实现 >> (3)DRF 的 权限系统实现 >> (4)DRF 的 用户频率限制系统实现 >> (5)综合使用 认证 权限 限流 >> ( 6 ) DRF 的 版本控制,解析器,与序列化 >> ( 7 阅读全文
posted @ 2018-03-01 19:32 派对动物 阅读(472) 评论(0) 推荐(0)
摘要:ECMAScript 6 简介 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 ECMA:国际标准组织 1 变量声明c 阅读全文
posted @ 2018-03-01 12:58 派对动物 阅读(255) 评论(0) 推荐(0)

Top