自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

perfectsorrow的博客

you are a person full of ideals

  • 博客(21)
  • 收藏
  • 关注

原创 python的魔术方法 __call__

__call__在Python中,函数其实是一个对象:>>> f = abs>>> f.__name__'abs'>>> f(-123)123由于 f 可以被调用,所以,f 被称为可调用对象。所有的函数都是可调用对象。一个类实例也可以变成一个可调用对象,只需要实现一个特殊方法__call__()。我们把 Person...

2018-05-30 16:14:14 542

原创 python的魔术方法 __nonzero__

类的__nonzero__方法用于将类转换为布尔值。通常在用类进行判断和将类转换成布尔值时调用。比如语句if A: print 'foo'中就会调用A.__nonzero__()来判断。下面这个程序应该能帮助你理解__nonzero__的作用。class A:  def __nonzero__(self):    print 'A._nonzero__()'    return True prin...

2018-05-30 15:16:16 498

原创 python的魔术方法 __format__

__format__()方法  __format__()传参方法:someobject.__format__(specification)  specification为指定格式,当应用程序中出现"{0:specification}".format(someobject)或format(someobject, specification)时,会默认以这种方式调用  当specification为"...

2018-05-30 15:10:19 413

原创 python的魔术方法 __unicode__()

对实例使用unicode()时调用。unicode()与str()的区别在于: 前者返回值是unicode, 后者返回值是str。unicode和str都是basestring的子类。当你对一个类只定义了__str__但没定义__unicode__时,__unicode__会根据__str__的返回值自动实现,即return unicode(self.__str__());但反过来则不成立。cla...

2018-05-30 14:49:19 2187

原创 python的魔术方法 __str__ 和__repr__

__str__和__repr__如果要把一个类的实例变成 str,就需要实现特殊方法__str__():class Person(object):    def __init__(self, name, gender):        self.name = name        self.gender = gender    def __str__(self):        return '...

2018-05-30 14:44:02 873

转载 CSRF攻击原理及防御

一、CSRF攻击原理  CSRF是什么呢?CSRF全名是Cross-site request forgery,是一种对网站的恶意利用,CSRF比XSS更具危险性。想要深入理解CSRF的攻击特性我们有必要了解一下网站session的工作原理。   session我想大家都不陌生,无论你用.net或PHP开发过网站的都肯定用过session对象,然而session它是如何工作的呢?如果你不清楚请往下看...

2018-05-27 16:27:56 154

转载 session的安全性

session原理提到session,大家肯定会联想到登录,登录成功后记录登录状态,同时标记当前登录用户是谁。功能大体上就是这个样子,但是今天要讲的不是功能,而是实现。通过探讨session的实现方式来发掘一些可能你之前不知道的有趣的事情。为了记录session,在客户端和服务器端都要保存数据,客户端记录一个标记,服务器端不但存储了这个标记同时还存储了这个标记映射的数据。好吧,还是说点白话吧,在客...

2018-05-27 16:19:47 589 1

转载 前后端分离之JWT用户认证

在前后端分离开发时为什么需要用户认证呢?原因是由于HTTP协定是不储存状态的(stateless),这意味着当我们透过帐号密码验证一个使用者时,当下一个request请求时它就把刚刚的资料忘了。于是我们的程序就不知道谁是谁,就要再验证一次。所以为了保证系统安全,我们就需要验证用户否处于登录状态。传统方式前后端分离通过Restful API进行数据交互时,如何验证用户的登录信息及权限。在原来的项目中...

2018-05-27 16:01:16 626

转载 rest api

一、REST的由来全称:REST,全称是Resource Representational State Transfer,即:资源在网络中以某种形式进行状态转移。————所谓状态的转移,可参考《HTTP权威指南》一书中对协议的详细解释,此处不过多赘述!出现:REST最早是由Roy Fielding博士发表的论文中提到的,他也曾参与设计了HTTP协议。论文地址:http://www.ics.uci....

2018-05-26 10:59:30 193

转载 session与cookie的作用

在Web发展历史中,session与cookie都是伟大的存在,其初衷都是为了记住用户在网站上的浏览信息,如果没有其他替代品的出现,几乎所有web站点都离不开session与cookie。为什么需要Http协议是无状态的,也就导致服务器无法分辨是谁浏览了网页。为了维持用户在网站的状态,比如登陆、购物车等,出现了先后出现了四种技术,分别是隐藏表单域、URL重写、cookie、session。Cook...

2018-05-13 19:58:44 227

转载 django orm数据库操作

一、DjangoORM 创建基本类型及生成数据库表结构 1、简介 2、创建数据库 表结构 二、Django ORM基本增删改查 1、表数据增删改查 2、表结构修改 三、Django ORM 字段类型 1、字段类型介绍 2、字段参数介绍 3、Django ORM 外键操作一、DjangoORM 创建基本类型及生成数据库表结构1、简介ORM:关系对象映射。定义一个类自动生成数据库的表结构。创建数据库的...

2018-05-12 16:14:24 602

转载 GitHub上README.md教程

README文件后缀名为md。md是markdown的缩写,markdown是一种编辑博客的语言。用惯了可视化的博客编辑器(比如CSDN博客,囧),这种编程式的博客编辑方案着实让人眼前一亮。不过GitHub支持的语法在标准markdown语法的基础上做了修改,称为Github Flavored Markdown,简称GFM。可不是GFW呀。开始编辑README打开你的GitHub的某个项目,我们可...

2018-05-12 15:11:43 297

转载 Git使用详细教程

一:Git是什么?  Git是目前世界上最先进的分布式版本控制系统。  二:SVN与Git的最主要的区别?  SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新的版本,然后干活,干完后,需要把自己做完的活推送到中央服务器。集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速...

2018-05-12 15:09:19 175 1

转载 Django 基本命令

1. 新建一个 django project12django-admin.py startproject project_name特别是在 windows 上,如果报错,尝试用 django-admin 代替 django-admin.py 试试注意 project_name 是自己的项目名称,需要为合法的 Python 包名,如不能为 1a 或 a-b。2. 新建 app要先进入项目目录下,cd...

2018-05-12 15:04:19 300

转载 werkzeug 详解

首先,先向大家介绍一下什么是 werkzeug,Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个 WSGI 工具包,它可以作为一个 Web 框架的底层库,因为它封装好了很多 Web 框架的东西,例如 Request,Response 等等。例如我最常用的 Fla...

2018-05-08 11:24:56 24762 3

转载 wtforms 简介

WTForms是一个支持多个web框架的form组件,主要用于对用户请求数据进行验证。安装:pip3 install wtformsWTforms作用:当网站中需要用到表单时,WTForms变得很有效。应该把表单定义为类,作为单独的一个模块。表单类:class wtforms.form.Form:创建表单:创建表单时,通常是创建一个Form的子类,表单的中的字段作为类的属性,如:from wtfo...

2018-05-08 11:20:16 5292

转载 flask-wtf 详解

一、安装pip install flask-wtf二、创建一个flask的项目引入相对应的包from flask import Flask,render_templateimport flask#引入模块from flask_wtf import FlaskForm,CsrfProtect#如果输入的是字符串那么就用StringField,如果是整数那么就用IntegerFieldfro...

2018-05-08 11:12:29 3439

转载 flask-sqlalchemy 快速入门

Flask-SQLAlchemy 使用起来非常有趣,对于基本应用十分容易使用,并且对于大型项目易于扩展。有关完整的指南,请参阅 SQLAlchemy 的 API 文档。一个最小应用常见情况下对于只有一个 Flask 应用,所有您需要做的事情就是创建 Flask 应用,选择加载配置接着创建 SQLAlchemy 对象时候把 Flask 应用传递给它作为参数。一旦创建,这个对象就包含 sqlalche...

2018-05-08 11:08:04 254

转载 Scrapy 和 scrapy-redis的区别

Scrapy 是一个通用的爬虫框架,但是不支持分布式,Scrapy-redis是为了更方便地实现Scrapy分布式爬取,而提供了一些以redis为基础的组件(仅有组件)。pip install scrapy-redisScrapy-redis提供了下面四种组件(components):(四种组件意味着这四个模块都要做相应的修改)SchedulerDuplication FilterItem Pip...

2018-05-04 16:03:34 271

转载 scrapy框架

Scrapy 框架Scrapy是用纯Python实现一个为了爬取网站数据、提取结构性数据而编写的应用框架,用途非常广泛。框架的力量,用户只需要定制开发几个模块就可以轻松的实现一个爬虫,用来抓取网页内容以及各种图片,非常之方便。Scrapy 使用了 Twisted['twɪstɪd](其主要对手是Tornado)异步网络框架来处理网络通讯,可以加快我们的下载速度,不用自己去实现异步框架,并且包含了各...

2018-05-04 10:58:52 245

原创 mysql优化

表的优化与列类型选择表的优化:1: 定长与变长分离如 id int, 占4个字节, char(4) 占4个字符长度,也是定长, time 即每一单元值占的字节是固定的.核心且常用字段,宜建成定长,放在一张表.而varchar, text,blob,这种变长字段,适合单放一张表, 用主键与核心表关联起来. 2:常用字段和不常用字段要分离.需要结合网站具体的业务来分析,分析字段的查询场景,查询频度低的...

2018-05-02 10:44:13 177

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除