03 2020 档案

Python dictdiffer模块
摘要:Let’s start with an example on how to find the diff between two dictionaries using diff() method: from dictdiffer import diff, patch, swap, revert fir 阅读全文

posted @ 2020-03-31 19:24 不要挡着我晒太阳 阅读(1325) 评论(0) 推荐(0) 编辑

python文件操作练习
摘要:1.获取后缀名 import os file_ext = os.path.splittext('./data/py/test.py') front,ext = file_ext print(front,ext) #'./data/py/test' #'.py' 2.创建文件夹 def mkdir(p 阅读全文

posted @ 2020-03-31 19:17 不要挡着我晒太阳 阅读(401) 评论(0) 推荐(0) 编辑

判断str1是否由str2旋转而来
摘要:stringbook旋转后得到bookstring,写一段代码验证str1是否为str2旋转得到。 思路 转化为判断:str1是否为str2+str2的子串(因为该思路比较巧妙,故记录下来) def is_rotation(s1: str, s2: str) -> bool: if s1 is No 阅读全文

posted @ 2020-03-31 16:40 不要挡着我晒太阳 阅读(188) 评论(0) 推荐(0) 编辑

数据库字段名批量转化为驼峰格式
摘要:import re def camel(s): s = re.sub(r"(\s|_|-)+", " ", s).title().replace(" ", "") return s[0].lower() + s[1:] # 批量转化 def batch_camel(slist): return [c 阅读全文

posted @ 2020-03-31 15:38 不要挡着我晒太阳 阅读(1103) 评论(0) 推荐(0) 编辑

字符串切片操作——查找替换3或5的倍数
摘要:[str("java"[i%3*4:]+"python"[i%5*6:] or i) for i in range(1,15)] 阅读全文

posted @ 2020-03-31 14:06 不要挡着我晒太阳 阅读(254) 评论(0) 推荐(0) 编辑

待填坑
摘要:今天看见一个烧脑的代码,一时没看懂结果,刨个坑,看懂填 def product(*args, repeat=1): pools = [tuple(pool) for pool in args] * repeat result = [[]] for pool in pools: result = [x 阅读全文

posted @ 2020-03-31 13:28 不要挡着我晒太阳 阅读(124) 评论(0) 推荐(0) 编辑

python chain模块
摘要:chain函数串联a和b,兼顾内存效率同时写法更加优雅。 from itertools import chain a = [1,3,5,0] b = {'a':1,'b':2} for i in chain(a,b): print(i) #result:1,3,5,0,a,b for i in ch 阅读全文

posted @ 2020-03-30 20:01 不要挡着我晒太阳 阅读(2671) 评论(0) 推荐(0) 编辑

Python标准库模块之heapq
摘要:该模块提供了堆排序算法的实现。堆是二叉树,最大堆中父节点大于或等于两个子节点,最小堆父节点小于或等于两个子节点。 创建堆 heapq有两种方式创建堆, 一种是使用一个空列表,然后使用heapq.heappush()函数把值加入堆中,另外一种就是使用heap.heapify(list)转换列表成为堆结 阅读全文

posted @ 2020-03-30 19:36 不要挡着我晒太阳 阅读(482) 评论(0) 推荐(0) 编辑

Python中的metaclass
摘要:Class也是Object 在理解metaclass之前,我们需要先理解Python中的class。从某种程度上来说,Python中的class的定位比较特殊。 对于大部分面向对象语言来说,class是一段定义了如何产生object的代码块。在Python中这一定义也成立: >>> class ex 阅读全文

posted @ 2020-03-30 15:34 不要挡着我晒太阳 阅读(430) 评论(0) 推荐(0) 编辑

python eval和exec的区别
摘要:eval:可以把字符串里的字符转换为可执行代码,但只支持一行字符。可以返回执行后得到的值。如下: f = "3+6+9+8" s = eval(f) print(s) 输出: "C:\Program Files\python3\python3.exe" D:/codes_py3/luhy_tool/ 阅读全文

posted @ 2020-03-30 13:10 不要挡着我晒太阳 阅读(310) 评论(0) 推荐(0) 编辑

flask源码分析
摘要:通过查看源码,我们知道app.run() 方法其实是执行了run_simple() 方法,源码如下: 我们可以通过下面一段代码探究run_simple() 方法都做了什么? from werkzeug.serving import run_simple from werkzeug.wrappers 阅读全文

posted @ 2020-03-27 15:05 不要挡着我晒太阳 阅读(300) 评论(0) 推荐(0) 编辑

生成requirements的脚本
只有注册用户登录后才能阅读该文。

posted @ 2020-03-26 19:29 不要挡着我晒太阳 阅读(0) 评论(0) 推荐(0) 编辑

python calendar模块
摘要:import calendar monthRange = calendar.monthrange(2018, 10) (0, 31) 输出的是一个元组; 第一个元素,数字0是这个月的第一天是星期天(上一个月的最后一天为星期几(0-6)),星期天为0; 第二个元素,数字31是这个月的天数; 阅读全文

posted @ 2020-03-26 16:25 不要挡着我晒太阳 阅读(181) 评论(0) 推荐(0) 编辑

Python __slots__
摘要:当一个类需要创建大量实例时,可以通过__slots__声明实例所需要的属性, 例如,class Foo(object): __slots__ = ['foo']。这样做带来以下优点: 更快的属性访问速度 减少内存消耗 Slots的实现 我们首先来看看用纯Python是如何实现__slots__(为了 阅读全文

posted @ 2020-03-26 14:47 不要挡着我晒太阳 阅读(349) 评论(0) 推荐(0) 编辑

Python输出带颜色字体
摘要:logger.debug("render : \033[1;34m{0}, {1}\033[0m".format(self.file_path, request.__dict__)) 书写格式: 开头部分:\033[显示方式;前景色;背景色m + 结尾部分:\033[0m 注意:开头部分的三个参数: 阅读全文

posted @ 2020-03-25 14:45 不要挡着我晒太阳 阅读(238) 评论(0) 推荐(0) 编辑

SQLAlchemy 多对多关系 Association Proxy
摘要:在定义多对多(Many to Many)模型时,上一篇文章里说,中间表只用能db.Table定义。 这会导致很多Session Model的操作不可用,而且中间表中添加和查询额外字段也很麻烦。 其实,较新的SQLAlchemy版本,已经支持中间表格用模型定义了,这就是:Association Pro 阅读全文

posted @ 2020-03-25 14:39 不要挡着我晒太阳 阅读(669) 评论(0) 推荐(0) 编辑

sqlalchemy(二)高级用法
摘要:外键以及relationship 首先创建数据库,在这里一个user对应多个address,因此需要在address上增加user_id这个外键(一对多)。 #!/usr/bin/env python # encoding: utf-8 from sqlalchemy import create_e 阅读全文

posted @ 2020-03-25 13:08 不要挡着我晒太阳 阅读(1037) 评论(0) 推荐(0) 编辑

sqlalchemy(一)基本操作
摘要:安装 需要安装MySQLdb pip install sqlalchemy 安装完成后,执行 >>>import sqlalchemy >>>sqlalchemy.__version__ 连接数据库 在sqlalchemy中,session用于创建程序与数据库之间的会话。所有对象的载入和保存都需要通 阅读全文

posted @ 2020-03-25 13:05 不要挡着我晒太阳 阅读(922) 评论(0) 推荐(0) 编辑

python blinker库
摘要:Blinker 是一个基于Python的强大的信号库,它既支持简单的对象到对象通信,也支持针对多个对象进行组播。Flask的信号机制就是基于它建立的。 Blinker的内核虽然小巧,但是功能却非常强大,它支持以下特性: 支持注册全局命名信号 支持匿名信号 支持自定义命名信号 支持与接收者之间的持久连 阅读全文

posted @ 2020-03-23 18:50 不要挡着我晒太阳 阅读(1980) 评论(0) 推荐(2) 编辑

Flask中的session ,自定义实现 session机制, 和 flask-session组件
摘要:session 是基于cookie实现, 保存在服务端的键值对(形式为 {随机字符串:‘xxxxxx’}), 同时在浏览器中的cookie中也对应一相同的随机字符串,用来再次请求的 时候验证; 注意 :Flask中的session是存在浏览器中 默认key是session(加密的cookie), 也 阅读全文

posted @ 2020-03-20 17:57 不要挡着我晒太阳 阅读(393) 评论(0) 推荐(0) 编辑

Python中的abc模块
摘要:前言在《抽象基类(ABC)》中,基于C++讲述抽象基类。尽管Python设计上以鸭子类型为主,但仍有抽象基类(ABC)的一席之地,它被封装在了abc模块中供程序员使用。 abc模块有以下两个主要功能: 某种情况下,判定某个对象的类型,如:isinstance(a, Sized)强制子类必须实现某些方 阅读全文

posted @ 2020-03-19 16:59 不要挡着我晒太阳 阅读(4883) 评论(0) 推荐(0) 编辑

python gettext使用
摘要:你写了一个Python 3程序,还想要它适用于其他语言。你能复制全部代码库,然后刻意地检查每个.py文件,替换掉所有找到的文本字符串。但这意味着你有两份你代码的独立副本,每当你要做出个改动或修复个bug,你的工作量会加倍。而且如果你想要程序还适用于其他语言,就更糟了。 幸运的是,Python给了一个 阅读全文

posted @ 2020-03-19 16:42 不要挡着我晒太阳 阅读(6044) 评论(0) 推荐(0) 编辑

flask-babel
摘要:pip install flask-babel 先初始化一个Flask-Babel的实例 from flask import Flask from flask.ext.babel import Babel app = Flask(__name__) babel = Babel(app) 设置语言和时 阅读全文

posted @ 2020-03-19 16:32 不要挡着我晒太阳 阅读(1286) 评论(0) 推荐(0) 编辑

Flask Signals详解
摘要:Flask Signals简介 Flask Signals和操作系统的signals系统很类似,都是通过信号(也可以说是事件event)来通知已经注册的回调函数,让回调函数自动开始执行。Flask定义了自己的一套核心signals和对应的functions(用于发起消息,注册回调函数),我们需要定义 阅读全文

posted @ 2020-03-19 15:44 不要挡着我晒太阳 阅读(697) 评论(0) 推荐(0) 编辑

python setuptools 学习
摘要:转载一个操作的例子: https://www.cnblogs.com/anliven/p/9840583.html 太多了,直接官网看介绍吧 下载和官网: https://pypi.org/project/setuptools/ 文档:https://setuptools.readthedocs.i 阅读全文

posted @ 2020-03-19 15:36 不要挡着我晒太阳 阅读(1111) 评论(0) 推荐(0) 编辑

Docker 容器化应用
摘要:Dockerfile Docker 通过 dockerfile 配置来把应用构建成镜像,dockerfile 是一个包含了配置和创建应用的全部命令的文本。Docker 官网上有对 dockerfile 的详细说明文档 看了文档后,对其使用有大致的了解,对不是太复杂的应用的容器化,已经能实践了,下面对 阅读全文

posted @ 2020-03-19 13:58 不要挡着我晒太阳 阅读(305) 评论(0) 推荐(0) 编辑

Python Click 学习笔记
摘要:Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现。恰好我最近在开发的一个小工具需要在命令行环境下操作,就写个学习笔记。 国际惯例,先来一段 “Hello World” 程序(假定已经安装了 Click 包)。 # 阅读全文

posted @ 2020-03-19 12:49 不要挡着我晒太阳 阅读(474) 评论(0) 推荐(0) 编辑

MySQL优化(7):其他注意事项
摘要:DDL执行 线上服务器执行DDL,更新表结构,需要谨慎,结构更改会导致全表被独占锁定(新版本有改善) 避免这种情况,使用COPY策略,而不是直接执行ALTER TABLE语句 思路:创建一个新表,满足新要求,将旧表数据逐条导入新表,同时表上可以执行其他任务,导入的过程其他任务都记录在日志,导入完成后 阅读全文

posted @ 2020-03-18 19:48 不要挡着我晒太阳 阅读(135) 评论(0) 推荐(0) 编辑

MySQL优化(6):分表和读写分离
摘要:分表 通常指:通过应用程序层,将数据划分到不同的表中进行存储 对比分区,分区是在服务器层完成的分区算法 分表会导致客户端明显的改变,在服务器端出现结构相同的多张表,甚至可以把多张表分到不同的服务器上 以账单表为例:数据库可能会有这样的情况 create table bill201710( id in 阅读全文

posted @ 2020-03-18 19:45 不要挡着我晒太阳 阅读(140) 评论(0) 推荐(0) 编辑

MySQL优化(5):分区
摘要:分区: 分区也是MySQL优化中的一个重要方式 将一个表中的数据和索引,分散到不同的文件中进行存储 通常情况下,一个表,对应一组数据和索引文件,一个表的数据和索引集中存储在这组文件中 当一个表出现了大量的记录时,可以将其分布到不同的数据和索引文件中进行存储 Innodb来说,一个表对应多个ibd文件 阅读全文

posted @ 2020-03-18 19:23 不要挡着我晒太阳 阅读(251) 评论(0) 推荐(0) 编辑

MySQL优化(4):查询缓存
摘要:查询缓存: MySQL提供的数据缓存QueryCache,用于缓存SELECT查询的结果 默认不开启,需要在配置文件中开启缓存(my.ini/my.cnf) 在[mysqld]段中,修改query_cache_type完成配置: 0:关闭 1:开启,但是默认缓存,需要增加sql-no-cache提示 阅读全文

posted @ 2020-03-18 19:10 不要挡着我晒太阳 阅读(201) 评论(0) 推荐(0) 编辑

MySQL优化(3):索引
摘要:MySQL优化中,最重要的优化手段就是索引,也是最常用的优化手段 索引简介: 索引:关键字与数据位置之间的映射关系 关键字:从数据中提取,用于标识,检索数据的特定内容 目的:加快检索 索引检索为什么快: (1)关键字相对于数据本身,量较小 (2)关键字都是排序好的 MySQL中索引的类型: 普通索引 阅读全文

posted @ 2020-03-18 19:07 不要挡着我晒太阳 阅读(149) 评论(0) 推荐(0) 编辑

MySQL优化(2):存储引擎和锁
摘要:存储引擎: 早期的时候,存在如何选择MyISAM和Innodb? 现在,Innodb不断地发展完善,成为了主流的存储引擎。 因此5.5之后的mysql,无脑选择Innodb即可。 MYSQL中的数据,索引以及其他的对象,是如何存储的,是一套文件系统的实现。 MYSQL支持很多的存储引擎,使用 SHO 阅读全文

posted @ 2020-03-18 19:05 不要挡着我晒太阳 阅读(167) 评论(0) 推荐(0) 编辑

MySQL优化(1):字段的设计
摘要:Web项目中,当Java或者Go等语言速度提升到瓶颈的时候,我们需要关心MySQL的优化 可以优化的方面有很多:设计表、负载均衡、读写分离、SQL语句优化等 (1)IP地址设计 例如我们需要存储IP地址:192.168.1.1 第一反应是选用VARCHAR(15);但是更好的方式是INT UNSIG 阅读全文

posted @ 2020-03-18 19:04 不要挡着我晒太阳 阅读(373) 评论(0) 推荐(0) 编辑

写Flask应用时的一些优雅技巧
摘要:借助find_modules,import_string优雅地注册蓝图模块 find_modules, import_string这两个函数包含在werkzeug.utils工具包中,借助着两个工具函数可以帮助我们在更优雅的给应用注册blueprint模块,尤其是当项目中blueprint模块很多的 阅读全文

posted @ 2020-03-17 14:51 不要挡着我晒太阳 阅读(362) 评论(0) 推荐(0) 编辑

关于python字典类型最疯狂的表达方式
摘要:一个Python字典表达式谜题 让我们探究一下下面这个晦涩的python字典表达式,以找出在python解释器的中未知的内部到底发生了什么。 # 一个python谜题:这是一个秘密 # 这个表达式计算以后会得到什么结果? >>> {True: 'yes', 1: 'no', 1.0: 'maybe' 阅读全文

posted @ 2020-03-17 14:16 不要挡着我晒太阳 阅读(290) 评论(0) 推荐(0) 编辑

ImportError:attempted relative import with no known parent package
摘要:前言 在这篇文章中,我将会解析 ImportError: attempted relative import with no known parent package 这个异常的原因。当你在运行的python脚本。使用了相对引用方式 (类似import ..module) 去引用包时,可能会出现这个 阅读全文

posted @ 2020-03-17 13:46 不要挡着我晒太阳 阅读(11055) 评论(0) 推荐(0) 编辑

web框架中的代码自动重载怎么实现
摘要:在开发和调试wsgi应用程序时,有很多方法可以自动重新加载代码。例如,如果你使用的是werkzeug,则只需要传use_reloader参数即可: run_sumple('127.0.0.1', 5000, app, use_reloader=True) 对于Flask,实际上在内部使用werkze 阅读全文

posted @ 2020-03-17 13:24 不要挡着我晒太阳 阅读(310) 评论(0) 推荐(0) 编辑

websocket的原理和使用
摘要:什么是websocket WebSocket是一种在单个TCP连接上进行全双工通讯的协议。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocket API中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数 阅读全文

posted @ 2020-03-17 12:33 不要挡着我晒太阳 阅读(1815) 评论(0) 推荐(0) 编辑

浅谈 python 中的上下文管理
摘要:with 语法 平常在写Python代码的时候,经常会用到with 来处理一个上下文环境,比如文件的打开关闭,数据库的连接关闭等等。 with语法的使用,需要我们处理的对象实现__enter__和__exit__两个魔术方法来支持。__enter__函数处理逻辑函数之前需要做的事情,并返回操作对象作 阅读全文

posted @ 2020-03-16 19:45 不要挡着我晒太阳 阅读(444) 评论(0) 推荐(0) 编辑

OrderedDict
摘要:因为项目用的python3.5,字典还是无序的,所以需要把OrderedDict捡一捡。 1.创建有序字典 import collections dic = collections.OrderedDict() dic['k1'] = 'v1' dic['k2'] = 'v2' dic['k3'] = 阅读全文

posted @ 2020-03-13 13:59 不要挡着我晒太阳 阅读(377) 评论(0) 推荐(0) 编辑

记一个python字典和json.dumps()的坑
摘要:最近项目中需要与管易云erp做对接,看了他的接口文档,php的示例代码,于是用python仿写。 其中传的参数data中前面几个json数据是固定的,最后需要加一个签名,该签名是对前面的json数据字符串化后,首尾拼接上screct字符串,再做md5处理(32位大写),再将该签名添加到之前的json 阅读全文

posted @ 2020-03-11 12:13 不要挡着我晒太阳 阅读(3124) 评论(0) 推荐(1) 编辑

多态
摘要:多态:同一件事情由于条件不同产生的结果不同 由于Go语言中结构体不能相互转换,所以没有结构体(父子结构体)的多态,只有基于接口的多态.这也符合Go语言对面向对象的诠释 多态在代码层面最常见的一种方式是接口当作方法参数 代码示例 结构体实现了接口的全部方法,就认为结构体属于接口类型,这是可以把结构体变 阅读全文

posted @ 2020-03-05 18:10 不要挡着我晒太阳 阅读(117) 评论(0) 推荐(0) 编辑

接口
摘要:接口解释:接口是一组行为规范的定义. 接口中只能有方法声明,方法只能有名称、参数、返回值,不能有方法体 每个接口中可以有多个方法声明,结构体把接口中 所有 方法都重写后,结构体就属于接口类型 Go语言中接口和结构体之间的关系是传统面向对象中is-like-a的关系 定义接口类型关键字是interfa 阅读全文

posted @ 2020-03-05 13:49 不要挡着我晒太阳 阅读(128) 评论(0) 推荐(0) 编辑

继承
摘要:按照传统面向对象思想,继承就是把同一类事物提出共同点为父类,让子类可以复用父类的可访问性内容. 继承有多种实现方式 通过关键字继承,强耦合实现方式 组合式继承,松耦合继承方式 使用过Java或C#的应该知道尽量少用继承而是使用组合代替继承,可以使用高内聚,低耦合.Java之父之前在一次采访的时候也说 阅读全文

posted @ 2020-03-05 13:47 不要挡着我晒太阳 阅读(102) 评论(0) 推荐(0) 编辑

封装
摘要:封装主要体现在两个方面:封装数据、封装业务 Go语言中通过首字母大小控制访问权限.属性首字母小写对外提供访问方法是封装数据最常见的实现方式 可以通过方法封装业务 提出方法是封装 控制结构体属性访问,对外提供访问方法也是封装 在面向对象中封装的好处: 安全性.结构体属性访问受到限制,必须按照特定访问渠 阅读全文

posted @ 2020-03-05 13:45 不要挡着我晒太阳 阅读(108) 评论(0) 推荐(0) 编辑

go语言中的面向对象
摘要:一.面向对象和面向过程 面向过程编程代码只适用于当前情况,而面向对象编程更注重重用,同一套代码可以使用多样的情况 面向过程编程(OPP)就是详细的按照顺序的把整个过程实现 例如:学生从家里去上学需要出门-->找到OFO-->扫描开锁-->上车-->直行-->左拐-->找到”粥饼面”-->停车-->上 阅读全文

posted @ 2020-03-05 13:41 不要挡着我晒太阳 阅读(277) 评论(0) 推荐(0) 编辑

方法
摘要:方法和函数语法比较像,区别是函数属于包,通过包调用函数,而方法属于结构体,通过结构体变量调用 默认是函数,隶属于包,所以需要添加标识.告诉编译器这个方法属性哪个结构体 调用方法时就把调用者赋值给接收者(下面的变量名就是接受者) func (变量名 结构体类型) 方法名(参数列表) 返回值列表{ // 阅读全文

posted @ 2020-03-05 13:23 不要挡着我晒太阳 阅读(114) 评论(0) 推荐(0) 编辑

结构体指针
摘要:由于结构体是值类型,在方法传递时希望传递结构体地址,可以使用时结构体指针完成 可以结合new(T)函数创建结构体指针 peo := new(People) //因为结构体本质是值类型,所以创建结构体指针时已经开辟了内存空间 fmt.Println(peo == nil) //输出:false //由 阅读全文

posted @ 2020-03-05 12:51 不要挡着我晒太阳 阅读(441) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示