Win10系统下安装编辑器之神Vim
序幕相对于pycharm,Sublime、Vscode等编辑器,vim一直是处于编辑器的最顶端,奉行 Unix 传统的“Do one thing and do it well”哲学。
本次我们在Win10平台构建一套以Vim为核心的Python开发环境。
下载安装与使用
首先进入giv官网下载gvim8,注意根据系统类型选择32或者64位,这里我们选择64位的
下载完成后,将下载好的压缩包解压,并且将文件放到C:/vim目录下
紧接着我们配置下环境变量,这样我们就可以在电脑的任意位置启动vim
之后在当前的用户目录,建立一个_vimrc文件,这是vim的配置文件,所有的设置都在这里编写
将以下内容添加到_vimrc文件中
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677" An example for a vimrc file."" M ...
(在线客服系统)Python3.7+Flask1.1.1结合Socket.io与Vue2.9.6联合实现在线客服系统
开场websocket是个啥?webSocket是一种在单个TCP连接上进行全双工通信的协议
webSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输
现在,很多网站为了实现推送技术,所用的技术都是轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。 而比较新的技术去做轮询的效果是Comet。这种技术虽然可以双向通信,但依然需要反复发出请求。而且在Comet中,普遍采用的长链接,也会消耗服务器资源。
在这种情况下,HTML5定义了WebSocket协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯
Socket.IO 就是一个封装了 Websocket、基于 Node 的 Ja ...
使用python3.7实现钉钉机器人群发
序幕之前实现了钉钉三方扫码登陆,不得不说,钉钉还是一款很不错的办公软件。在最近的疫情期间,打游戏都不怎么坑了(因为钉钉的存在)。不过钉钉的群发机器人还是挺不错,可以自定义发送的信息。个人感觉比图灵好用,前期的微信公众号添加机器人使用的就是图灵机器人。
不过关于钉钉机器人网上的一些攻略年代都比较久远,代码很多都基于python2,那我们尝试用python3.7来开发配置钉钉自定义机器人。
解决问题quote_plus与quote的区别1234quote = urllib.parse.quote('a&b/c')print('a&b/c:',quote)plus = urllib.parse.quote_plus('a&b/c')print('a&b/c:',plus)
结果(一个不编译/,一个编译)
12a&b/c: a%26b/ca&b/c: a%26b%2Fc
创建机器人
在创建机器人之前,我们需要有自己的钉钉号,和创建一个钉钉群聊,而且创建机器人不支持手机端,所以请在电脑端进行创建
进入创建好的群,群成员可根据个人喜好添加, ...
(贝宝模拟实现跨境支付)使用python3.7+Vue.js2.0+Django2.0.4实现Paypal模拟跨境支付功能
序幕
Paypal(贝宝),作为一种外贸支付方式,目前在国际贸易支付服务中倍受亿万用户追捧,是全球商户和消费者最受欢迎的电子支付方式之一,是倍受全球亿万用户追捧的国际贸易支付工具,即时支付,即时到账,全中文操作界面,能通过中国的本地银行轻松提现,解决外贸收款难题,助您成功开展海外业务,决胜全球。注册PayPal后就可立即开始接受信用卡付款。、
PayPal是名副其实的全球化支付平台, 服务范围超过200个市场, 支持的币种超过100个。在跨国交易中, 将近70%的在线跨境买家更喜欢用PayPal支付海外购物款项。
之前写过模拟实现支付宝模拟支付,这次我们来实现跨境三方支付接口PayPal
创建贝宝沙盒应用
首先注册官网 https://www.paypal.com 以及开发者平台:https://developer.paypal.com/classic-home/
注册成功后,在沙盒的账号控制页面:https://developer.paypal.com/developer/accounts/
与支付宝沙箱一样,也有两个账号,一个商家,一个个人,当然也可以自己创建账号,点击 ...
OOP总结
Python 是一种解释型、面向对象、的高级程序设计语言。
那什么是面向对象呢
与面向对象经常拿来对比的就是面向过程编程,那么他们之间的区别在什么地方呢?
打个比方 ,我们买过的一般的玩具(变形金刚),我们必须要按照它说明书上的步骤,一步一步的去组装,才能得到最后的玩具,如果我们想要一个新的玩具,就要去商场买一个新的,然后按照说明书的顺序一步一步的组装。这就是面向过程
而面型对象呢?就可以理解为积木,没有一个固定的拼装方式,我们可以发挥自己的想象力,去自由的拼装和组装,同样的模块在不同的地方可以起到不同的作用(多态),一块儿积木就是一个最小的单位,我们哪里需要就放到哪里(封装)。也可以用多个对象组装起来去拼装成一个新的对象(继承)。大大的方便了我们的设计,不再拘泥于过程,极大程度上的放飞了生产力和效率。
总的来说就是封装,继承,多态,抽象
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
所以,在使用面向对象的封装特性时,需要:
将内容封装到某处
从某处调用被封装的内容
一、将内容封装到某处
12345678910111213# 创建类class Foo: ...
md5数据加密
序幕MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。这套算法的程序在 RFC 1321 标准中被加以规范。1996年后该算法被证实存在弱点,可以被加以破解,对于需要高度安全性的数据,专家一般建议改用其他算法,如SHA-2。2004年,证实MD5算法无法防止碰撞(collision),因此不适用于安全性认证,如SSL公开密钥认证或是数字签名等用途。
实现vue下载md5包npm install js-md5
1"js-md5": "^0.7.3"
测试,并打印出md5
12345678910111213141516171819202122232425262728293031323334<template> <div> 666 </div ...
(支付宝模拟支付)使用python3.7+Vue.js2.0+Django2.0.4实现支付宝模拟支付功能
序幕在当今科技发达的时代,纸币已将慢慢的从人们的口袋消失。随着带来的是更方便的电子货币(手机虚拟货币)。支付宝,是我国比较强大的第三方支付平台,也被广大人群所喜爱。在当今的基本所有网上购物平台都支持支付宝支付,所以我们用支付宝沙箱环境来模拟实现三方支付
什么是沙箱环境蚂蚁沙箱环境 (Beta) 是协助开发者进行接口功能开发及主要功能联调的辅助环境。沙箱环境模拟了开放平台部分产品的主要功能和主要逻辑(当前沙箱支持产品请参考下文的 沙箱支持产品 列表)。 在开发者应用上线审核前,开发者可以根据自身需求,先在沙箱环境中了解、组合和调试各种开放接口,进行开发调通工作,从而帮助开发者在应用上线审核完成后,能更快速、更顺利的进行线上调试和验收工作。 如何使用和配置沙箱环境请参考下文 如何使用沙箱环境。
注意
由于沙箱为模拟环境,在沙箱完成接口开发及主要功能调试后,请务必在蚂蚁正式环境进行完整的功能验收测试。所有返回码及业务逻辑以正式环境为准。
为保证沙箱稳定,沙箱环境测试数据会进行定期数据清理。Beta 测试阶段每周日中午12点至每周一中午12点为维护时间,在此时间内沙箱环境部分功能可能会不可用 ...
snowflake分布式唯一算法
序幕ID一般用来作为数据库表的主键,需要保证唯一性,通常情况下可以有以下几种方式实现:
1.UUID(Universally Unique Identifier):
UUID是由一组32位数的16进制数字所构成的通用唯一识别码,可以保证ID的全局唯一性,但由于数据库或者文件系统的索引一般是由B+树构成的,而UUID插入完全无序,经常会导致一些中间节点合并和分裂,大大降低了数据库插入性能。
123import uuidprint(uuid.uuid1())12725082-acaa-11ea-98eb-e86a64ddceb7
2.自增ID:
现在很多数据库引擎都支持自增ID,自增ID最大的好处是每次插入都在末尾,这样可以很大程度的减少节点的合并和分裂。而且自增ID所占空间也比UUID要小。但是自增ID只能保证一个库中一张表的ID唯一,往往不能保证多个库多张表的ID唯一,这样多个库之间合并的时候会因为主键冲突而失败。
3.自增ID+哈希取模:
如果数据量比较大,可以用n台机器存储。每台机器设置不同的起始值,所有机器的步长和机器数量相同。相当于自增ID与机器数量哈希取模。比如有3台机器, ...
单点登录(SSO)的设计与实现
序幕单点登录英文全称Single Sign On,简称就是SSO。它的解释是:在多个应用系统中,只需要登录一次,就可以访问其他相互信任的应用系统。
两个站点如果在同域下,那么它们之间是可以共享cookie的。简单的说就是这种同域下不同站点的sso实现可以通过cookie来实现,当用户访问这个域下面的任意站点时,浏览器都会将这个cookie发送给站点对应的系统。
实现原理
实现效果比如阿里系的淘宝和天猫,很明显地我们可以知道这是两个系统,但是你在使用的时候,登录了天猫,淘宝也会自动登录。
简单来说,单点登录就是在多个系统中,用户只需一次登录,各个系统即可感知该用户已经登录。
实现方式第一种方式:凭借cookie,应用间的重定向这种方式比较简单,当用户在上面三个站点中的任意一个站点登录成功时,必须在浏览器中同时设置其他站点的cookie信息。 例如:当用户登录site1站点,并且验证通过之后,浏览器会存储一份site1站点的cookie信息,这时,为了实现单点登录(为了在site2站点和site3站点无需登录),那么我们需要在浏览器设置site2站点和site3站点的cookie信息,因 ...
(又拍云云存储)使用python3.7+Vue.js2.0+Django2.0.4实现又拍云云存储的异步文件上传功能
序幕上次我们实现了七牛云异步上次文件,今天我们来实现又拍云的异步文件上传功能
话不多说,直接实现吧
又拍云配置服务器
首先进入又拍云官网:https://www.upyun.com/,进行注册登陆
登陆成功后,进入控制台,找到云服务,并进入
进入之后,创建服务
这里与七牛云不同的是需要我们新建一个授权操作员
进入创建操作员之后,将权限全部勾选,而且这个密码是一次性密码,需要我们记录
创建服务成功之后,进入存储管理,下面可以定义操作员权限
安装库使用又拍云还需要安装一个库
1pip install upyun
Django(获取文件,并上传)123456789101112131415161718192021222324252627282930313233343536373839import upyun#定义文件上传类class UploadFile(View): def post(self,request): img = request.FILES.get('file') up = upyun.UpYun('你的空间名称' ...