- 博客(44)
- 资源 (13)
- 收藏
- 关注
原创 关于JavaScript中浮点数比较的问题
我们在javascript中操作浮点数加减运算判断时经常会遇到这样的问题,比如 0.1+0.2 == 0.3 false按照我们正常的思维 应该是相等啊,怎么返回的是 false 呢? 这个是因为javascript的进度问题,我们看一下 0.1+0.2 0.30000000000000004 0.1 + 0.2 - 0.3 5.551115123125783e
2017-10-08 16:08:51
15142
原创 django 多数据库配置
在django项目中, 一个工程中存在多个APP应用很常见. 有时候希望不同的APP连接不同的数据库,这个时候需要建立多个数据库连接。1. 修改项目的 settings 配置 在 settings.py 中配置需要连接的多个数据库连接串DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3',
2017-04-18 16:31:50
20470
1
翻译 django Rest Framework 系列 7 - Schemas & client libraries
官方地址: http://www.django-rest-framework.org/tutorial/7-schemas-and-client-libraries/一个Schemas是一种机器可读文档,用于描述可用的API端, URLS 以及支持的操作。 Schemas可以是自动生成文档的有用工具, 也可以用于驱动与API进行交互的动态客户端库。1. Core API 为了提供 schemas
2017-04-18 11:12:26
1104
翻译 django Rest Framework 系列 6 - ViewSets & Routers
官网地址:http://www.django-rest-framework.org/tutorial/6-viewsets-and-routers/REST框架包含一个用于处理ViewSets 的抽象概念,它允许开发人员能专注于API的状态和相互作用进行建模,并基于常规约定自动构建URL。 ViewSet 类和 View 类几乎是一样的,区别是它提供了类似于read 或 update 这样的操作
2017-04-18 10:15:52
1962
翻译 django Rest Framework 系列 5 - Relationships & Hyperlinked APIs
目前我们的API中的关系用主键表示,在本教程的这一部分中,我们将改进API的内聚力和可发现性,而不是使用关联的超链接。1 .为API根创建一个终结点 现在我们有了 snippets 与 users 的端点, 但没有AP
2017-04-17 17:20:23
1129
翻译 django Rest Framework 系列 4 - Authentication & Permissions
当前我们的API 并没有限制谁可以编辑或删除snippets代码, 我们需要一些更高级的行为来确保: . snippets代码总是与创建者联系在一起 . 只有认证的用户才可以创建 snippets . 只有snippet的创建者才可以更新或删除信息 . 未认证的请求只能有只读访问权限
2017-04-16 17:09:53
1911
翻译 django Rest Framework 系列3 - Class-based Views
我们也可以使用基于类的视图来编写API视图,而不是基于函数的视图。我们将会看到,这是一种可以允许我们重用通用功能的强大模式,可以帮助我们保持我们的代码DRY(Don’t repeat yourself)
2017-04-16 14:09:19
411
翻译 django Rest Framework 系列 2- Request and Response
rest framework 引入了一个继承自HttpRequest的Request对象,该对象提供了对请求的更灵活解析。request对象的核心部分是request.data属性,类似于request.post, 但在使用WEB API时,request.data更有效
2017-04-16 12:16:05
980
翻译 django Rest Framework 系列 1 - 序列化 Serialization
我们要使用我们的web api,要做的第一件事就是序列化和反序列化, 以便snippets实例能转换为可表述的内容,例如json. 我们声明一个可有效工作的串行器serializer。在snippets目录下面,该串行器与django 的表单形式很类似。创建一个serializers.py ,并将下面内容拷贝到文件中.
2017-04-16 11:55:47
1267
原创 JsonP跨域请求
我们在通过自己的页面或程序通过ajax请求其它网站或服务时,会存在一个ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。不过我们又发现,Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如、、). 于是可以判断,当前阶段如果想通过纯web端(Act
2016-08-02 17:12:57
522
原创 python系列之 - select
I/O多路复用是在单线程模式下实现多线程的效果,实现一个多I/O并发的效果。看一个简单socket例子:import socketSOCKET_FAMILY = socket.AF_INETSOCKET_TYPE = socket.SOCK_STREAMsockServer = socket.socket()sockServer.bind(('0.0.0.0', 8888)
2016-04-18 21:46:03
11135
1
转载 pytho系列之 RabbitMQ - Exchange几种模式
本文转载自: http://www.gaort.com/index.php/archives/366RabbitMQ中,所有生产者提交的消息都由Exchange来接受,然后Exchange按照特定的策略转发到Queue进行存储RabbitMQ提供了四种Exchange:fanout,direct,topic,headerheader模式在实际使用中较少,本文只对前三种模式进
2016-03-22 11:08:28
1196
翻译 python系列之 RabbitMQ - RPC
远程过程调用(Remote procedure call (RPC))在第二课我们学习了怎样使用 工作队列(work queues) 来在多个workers之间分发需要消时的 任务但是如果我们需要在远程的服务器上调用一个函数并获取返回结果 我们需要怎么做呢?well这是一个不一样的故事。 这中模式通常被称为远程过程调用或RPC在这一刻我们将要使用RabbitMQ来建立一个RPC系统:一
2016-03-22 00:22:16
4933
翻译 python系列之 RabbitMQ -- TOPICS
Topics前面的课程中我们对日志系统进行了改进。替换了仅能进行虚拟广播的 fanout 交换,我们使用了一个直接的能进行选择性接收日志的交换(direct)尽管使用 直接交换 (direct)改进了我们的系统,但仍然有局限性 -- 不能够基于多个条件进行路由在我们的日志系统中我们可能需要订阅不只是基于严重性的的日志,还需要基于发送源的日志。你可能从unix的syslog工具知道这种
2016-03-21 22:45:10
768
翻译 python系列之 RabbitMQ -- Routing
在前面的章节我们创建了一个简单日志系统,可以广播日志消息到多个接收方在本 教程中我们添加一个功能 -- 我们将要实现一种可能性即让它只接收已订阅的消息。我们将仅保存严重错误日志信息到日志文件(节约磁盘空间),同时仍然能够打印所有日志信息到控制台上。绑定(Bindings)前面的例子我们已经创建了bangding,我们可以回忆一下代码:channel.queue_bind(e
2016-03-21 21:36:14
1822
翻译 python系列之 RabbitMQ -- Publish/Subscribe
前面的部分我们创建了一个工作队列(work queue). 设想是每个任务都能分发到一个worker,这一部分我们将会做一些完全不同的事情 -- 我们将会分发一个消息到多个消费方(consumer),这中模式被誉为发布/订阅(publish/subscribe)为了阐明这种模式,我们将要创建一个简单的日志系统,由两部分程序组成 -- 第一部分将要发布日志消息,第二部分接收并打印在我们的日志
2016-03-21 17:50:29
5038
1
翻译 python系列之 RabbitMQ - work queues
本节我们创建一个工作队列( work queue )用来在多个workers之间分发消息工作队列(又名:任务队列)的主要思想是避免在资源密集型的任务处理中不得不等待它的完成,相反,我们安排这个任务稍后完成。我们把这任务作为一个消息封装起来并发送到一个队列中,一个后台工作进程将这个任务取出并最终执行这个任务,当你运行多个任务时,多个消费者将共享这些任务。这个概念在网页应用中对于在HTTP短连
2016-03-21 15:38:23
1774
翻译 python系列之 RabbitMQ - hello world
介绍 RabbitMQ 是一个消息中间件,它的主要功能非常简单: 接收和转发消息。 你可以认为 RabbitMQ 就是一个邮局,当你将邮件投递到邮箱后你非常确认邮递员会将你邮件最终投递到你的接收者。 通过这个比喻,MQ就是一个邮箱、邮局和邮递员 RabbitMQ与邮局的最大不同点是 MQ不处理纸张,而是存储和转发二进制数据(消息)RabbitMQ有一些基本术语:
2016-03-21 11:19:25
807
转载 memcache安装部署
安装部署memcached安装需要libevent包的支持1 wget https://github.com/downloads/libevent/libevent/libevent-1.4.14b-stable.tar.gz2 tar xvzf libevent-1.4.14b-stable.tar.gz3 ln -s /usr/local/libevent-1.4.14b-st
2016-03-18 16:18:54
1982
转载 redis安装部署
Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。 Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每
2016-03-18 14:48:56
338
原创 python模块之 paramiko
paramiko模块提供了ssh及sft进行远程登录服务器执行命令和上传下载文件的功能。这是一个第三方的软件包,使用之前需要安装。1 基于用户名和密码的 sshclient 方式登录# 建立一个sshclient对象ssh = paramiko.SSHClient()# 允许将信任的主机自动加入到host_allow 列表,此方法必须放在connect方法的前面ssh.set_missing
2016-03-18 10:06:40
40461
6
原创 python 系列之 - 多进程
多进程 (multiprocessing)1 创建一个多进程 创建: multiprocessing.Process([target=函数名], [ name = 别名], [args=(参数,)], [kwargs=调用对象的字典,]) 方法: is_alive() : 判断当前进程是否为活动状态 join([timeout]): 和多线程一样,等待其它子进程结束后主
2016-03-08 15:54:41
3934
原创 python 系列之 - 多线程
进程 && 线程 进程:是内存中的一个独立的句柄,我们可以理解为一个应用程序在内存中就是一个进程。 各个进程之间是内存相互独立,不可共享的 线程:每个应用运行之后就会对应启动一个主线程,通过主线程可以创建多个字线程,各个线程共享主进程的内存空间。 关于线程、进程的解释有一篇有趣而生动的解释(http://www.ruanyifeng.com/blog/2013/04/processes_and
2016-03-08 12:23:36
2251
原创 python 系列之 - 异常处理
python提供的异常处理 try....except格式如下try: print("逻辑处理代码块")except Exception as e: print("代码块执行错误异常", e)else: print("逻辑代码块执行无错误执行此部分")finally: print("无论有无错误都执行的代码块部分")如上所示, python的
2016-03-07 20:58:10
707
原创 python模块之 - logging
import logginglogs = logging.getLogger("APACHE")logs.setLevel(logging.INFO) # 如果此处设置了等级,则优先级最高,如果下面对屏幕或文件单独设置的日志等级 优先级都低于此处等级# 定义一个屏幕输出的logsrlog = logging.StreamHandler()srlog.setL
2016-03-07 19:34:13
476
原创 SocketServer模块源码分析
python 提供的SocketServer 模块是一个多线程或多进程(既可以用多进程,也可以用多线程,取决于用户自己的需求)的Socket模块,能帮助我们更快的开发一个SocketServer服务器,我们在使用SocketServer模块开发时不用关心内部的实现方法,python已经帮我们封装好了。我们只需要关心客户端连接后的业务实现即可。用户端SocketServer实现例子:import so
2016-02-26 17:03:03
1866
原创 python系列之 - 面向对象(一)
python是一门面向对象的编程语言,python中的一切均是对象。 有对象就提到类,对象和类就像是儿子和老子的关系,是不可分的一对。什么是类 类就是具有一些共同特性的事物的统称。好比人类,共有的特性是能说话、能走路、要吃饭、睡觉等共同特性 什么是对象 对象是类的实体,除了有人类的共有特性外也可能还有个体特性,比如两个人张三、李四就是两个不同的对象。1 类的定义 c
2016-02-26 10:25:52
854
原创 python模块系列之 - subprocess
subprocess – 创建附加进程 subprocess模块提供了一种一致的方法来创建和处理附加进程,与标准库中的其它模块相比,提供了一个更高级的接口。用于替换如下模块: os.system() , os.spawnv() , os和popen2模块中的popen()函数,以及 commands().1. 运行外部命令 subprocess.call(command)
2016-02-25 14:57:08
14509
原创 python模块系列之 - xml
xml 是现在程序中用到的比较重用的一种数据格式,可以用于不同程序或语言之间的数据交换,python当然也不例外,通过xml模块就可以轻松实现xml文件的读写操作1.生成一个xml文件from xml.etree import ElementTree as ETroot = ET.Element("game-user")user1 = ET.SubElement(root, "u
2016-02-24 17:40:54
511
原创 python模块系列之 - os , os.path,shutil
osos模块对操作系统的特定模块进行了一个封装,包括posix, nt 和 mac, os提供的API函数在所有的平台上使用方法都是一样的,因此使用os模块提供了平台的移植性。但并不是所有的函数在所有的平台上都可以使用。常用OS方法序号函数说明1os.access(path,mode)按照mode指定的权限访问文件2o
2016-02-01 15:40:41
2985
原创 python系列之 - 装饰器
多层装饰器def log_auth(bef, end): def outer(func): def inter(**arg): print("login successful") r1 = bef(arg["before"]) r2 = end(arg["end"]) a =
2016-01-27 13:53:11
629
原创 python模块系列之 - time,datetime,calendar
1 time模块1 获取当前时间>>> time.localtime() -- 当前时间的struct_time形式time.struct_time(tm_year=2015, tm_mon=2, tm_mday=2, tm_hour=16, tm_min=33, tm_sec=36, tm_wday=0, tm_yday=33, tm_isdst=0)>>> time.cti
2016-01-26 16:29:59
2164
原创 python模块系列之 - re
str = "adcd123TF192.168.3.200diek929304255.284.23.23"# match 从字符串第一个开始找,开头找到就返回找到的值,没有就返回none,后面即使有也找不到def match(): str1 = "adcd123T" match_result_1 = re.match("\d+", str1) print(
2016-01-26 11:32:21
4888
原创 python模块系列之 - copy
python中的模块主要功能是为对象提供地址引用。在python中当定义完或者对一个变量完成赋值以后,在内存中就开辟了一块空间来存储对象。如果要将该对象复制一份给另一个对象就要用到copy模块。在python中copy包含2个函数: 浅拷贝 copy() 和 深拷贝 deepcopy()两则的区别主要是: 完成 copy 后对象的内存地址会不一样,但这个不一样也仅是对变长的数据类型而言,
2016-01-22 21:33:57
1141
原创 Python系列之 - Collections系列
collections的常用类型有:计数器(Counter)双向队列(deque)默认字典(defaultdict)可命名元组(namedtuple)有序字典(OrderedDict)使用以上类型时需要导入模块 from collections import *1. CounterCounter 作为字典(dict)的一个子类用来进行hashtable计数,将元素进
2016-01-12 10:29:30
15655
5
原创 python系列之 - 函数
# lambda 表达式,类似于函数的单运算f_lam = lambda x: x * 2print(f_lam(10)) # 20# map 函数,将传入的列表中的每个值进行一次函数运算li = (1, 2, 3, 4)f_map = map(lambda x: x + 3, li)print(f_map) # [4, 5, 6, 7]# filter 函数, 将计算的结果
2016-01-12 08:52:25
768
Shell脚本监控服务器状态
2011-07-09
多列显示的Combobox自定义控件
2009-03-27
c# 代码段编辑器(Snippy-Visual Studio Code Snippets Editor)
2009-02-28
C#扩充代码段包及代码段编写器
2009-02-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人