![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
无霸独尊
加油打工人
展开
-
python 加密字符串
from Crypto.Cipher import AESimport base64BLOCK_SIZE = 16 # Bytespad = lambda s: s + (BLOCK_SIZE - len(s) % BLOCK_SIZE) * \ chr(BLOCK_SIZE - len(s) % BLOCK_SIZE)unpad = lambda s: s[:-ord(s[len(s) - 1:])]def aesEncrypt(key, data):原创 2021-05-24 18:19:53 · 1741 阅读 · 0 评论 -
pip 按照requirements.txt安装到对应的package名称的文件中
假设requirement.txt中的celery==4.0.2当我需要离线下载requirements.txt中的内容,并且按照库名创建一个文件,并将这个版本放到这个目录下#!/bin/bashfile_name=$1base_dir=$2for package_name in `cat $file_name` ; do echo $package_name arr=(`echo $package_name | tr '==' ' '`) dir_name=$原创 2021-03-29 13:36:47 · 1261 阅读 · 0 评论 -
python协程、协程池、协程锁
如何开启协程from gevent import monkey; monkey.patch_socket()import geventdef f(n): for i in range(n): print gevent.getcurrent(), ig1 = gevent.spawn(f, 5)g2 = gevent.spawn(f, 5)g3 = gevent.spawn(f, 5)g1.join()g2.join()g3.join()协程池from ge原创 2021-01-22 14:49:20 · 5698 阅读 · 1 评论 -
flask为每次请求添加一个id标记
场景api日志在打印的过程中,并不是一个请求的日志集中在一起大批量请求的时候,日志打印的很混乱,想要找到单个api请求的日志(很难)需求每次请求之前设置当前api有个特殊的ID,请求另外一个api也生成一个id,并且两个api的id独立,互不影响方法库github地址pip install flask_request_iddemo# coding: utf-8from flask import Flaskapp = Flask(__name__)from flask_原创 2021-01-19 17:15:21 · 7168 阅读 · 2 评论 -
python日志通过不同的等级打印不同的颜色
# coding: utf-8import loggingBLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE = range(8)RESET_SEQ = "\033[0m"COLOR_SEQ = "\033[1;%dm"COLORS = { 'WARNING': GREEN, 'INFO': WHITE, 'DEBUG': BLUE, 'CRITICAL': YELLOW, 'ERROR': RED原创 2021-01-12 16:40:58 · 5680 阅读 · 2 评论 -
mac Python安装pybloomfilter 出现找不到libcrypto的问题
获取新的库brew update && brew upgrade && brew install opensslcd /usr/local/Cellar/openssl/1.0.2t/libsudo cp libssl.1.0.0.dylib libcrypto.1.0.0.dylib /usr/local/lib/建立新的连接sudo ln -s li...原创 2019-11-14 19:54:40 · 5584 阅读 · 0 评论 -
mongo数据的操作
import pymongofrom pymongo import MongoClientclient = MongoClient('localhost', 27017)db = client.haha # 创建一个数据库、或者连接数据库posts = db.posts # 创建一个collections/或者连接collections# 打印数据库中所有的collection(集...原创 2019-09-09 01:58:56 · 4885 阅读 · 0 评论 -
mongo数据库的操作(安装和配置)
"""sudo apt updatesudo apt install -y mongodbsudo systemctl status mongodbmongo --eval 'db.runCommand({ connectionStatus: 1 })'开启服务器sudo systemctl status mongodb停止服务器sudo systemctl stop mongod...原创 2019-09-09 02:00:38 · 4962 阅读 · 0 评论 -
mongo数据库的操作(update和insert)
"""update() 方法用于更新已存在的文档。语法格式如下:db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> })...原创 2019-09-09 02:02:04 · 6883 阅读 · 0 评论 -
mongo数据库的操作(基础篇)
远程登录mongo 地址:端口/库名 -u 用户名 -p 密码查看数据库列表show dbs进入数据库use 数据库名查看当前所在的数据库db创建数据库插入数据,就能创建数据库删除数据库use 数据库名db.dropDatabases()集合的操作(表)列出所有的表show collections创建集合db.createCollection('表...原创 2019-09-09 02:03:18 · 5320 阅读 · 0 评论 -
mongo数据库的操作(aggtegate聚合操作详解)
"""conn = pymongo.Connection()collection = conn.dbname.collection_name#match用户筛选,相当于sql语句中的where后面的表达式match = {}match['date'] = { '$gte' : '2015-08-21', #大于等于2015年8月21日的 '$lte' : '2015-0...原创 2019-09-09 02:04:41 · 5259 阅读 · 0 评论 -
Django中使用Websocket
websocket的配置 Daphne + Channels常规的视图函数进行的是http请求,Django中使用channels库将websocket请求添加到部分子路由中1,在项目同名子目录下添加routing,py文件# mysite/routing.pyfrom channels.routing import ProtocolTypeRouterapplication = P...原创 2019-09-09 02:07:43 · 6071 阅读 · 0 评论 -
Centos安装python3并设为默认
"""编译安装$ sudo mkdir /usr/local/python3 # 创建安装目录# 下载 Python 源文件$ wget --no-check-certificate https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz# 注意:wget获取https的时候要加上:--no-check-certificate...原创 2019-09-09 02:26:39 · 5588 阅读 · 0 评论 -
关于Django运行pymysql出错的原因解决办法
mysqlclient 1.3.13 or newer is required; you have 0.9.3换个环境还能跑的,但是就是新环境存在问题,所以在网上看了很多的解决办法,我两种都试了一下,都可以直接用第一种方法删除环境,重装环境,这对于第一次遇到这样的问题有很大的帮助,免去了一直在寻找问题的时间,我试过一次,直接成功第二种方法报错信息中最后一行base.py中显示的...原创 2019-09-06 00:41:36 · 5760 阅读 · 0 评论 -
Python开启定时任务的两种方法
前言前段时间刚刚一个项目中有一个需求就是定时去触发一个任务,但是年代久远,并没有记住当时学习的用法,在完成任务的时候,走了不少的弯路,现在把在网上爬楼学到的分享给大家。1,Django中开启定时任务Django中会在配置中帮助我们很快的开启定时任务# 添加定时任务CRONJOBS = [ ('*/3 * * * *',"需要调用的方法路径(点语法拼接)"),]# 解决中文乱码...原创 2019-08-01 10:26:14 · 7810 阅读 · 1 评论 -
关于python打印日志信息的坑
首先在网上找的都是一次性的不说,性能也不是很好,但是找到一个大神的日志信息首先创建一个文件logcong.py"""logging配置"""import osimport logging.config# 定义三种日志输出格式 开始standard_format = '[%(asctime)s][%(threadName)s:%(thread)d][task_id:%(name...原创 2019-05-15 15:11:14 · 6200 阅读 · 0 评论 -
mac和linux的python配置虚拟环境
python中通过虚拟化出来一个空间,与主环境完全隔离,避免项目中对于环境要求,造成的插件版本混乱(python特别吃环境)mac 的配置前文已经说过python3的安装,我们基本在生产电脑上只是用python3和pip3但是命令行每次都需要写上版本数字很麻烦,这里作者教大家一个一劳永逸的办法打开终端sudo vi ~/.bash_profile输入密码在配置文件中添加alias...原创 2019-04-06 23:22:25 · 6580 阅读 · 6 评论 -
python的多线程(第一篇)基本用法
现在开始写笔记博客了,很多地方不进行解释了,这就需要学习力了,其实也不难理解1,什么是线程线程就是程勋运行过程中,执行程序代码的一个分支,每个运行的程序至少都有一个线程线程是cpu调度的基本单位线程不能独立执行,必须依存在进程中线程之间共享全局变量,但是会有资源争夺的问题,(互斥锁或者线程同步解决问题)线程,能够完成多任务,比如一个QQ中的多个聊天窗口2,多线程的优缺点优点:...原创 2019-04-12 15:29:08 · 5400 阅读 · 0 评论 -
python的多线程(第二篇)自定义线程
自定义一个线程,是为了在工作中使用我们自己编写的代码能够进行多线程代码实现import threading# 自定义线程类class MyThread(threading.Thread): # 通过构造方法取接收任务的参数 def __init__(self, info1, info2): # 调用父类的构造方法 super(MyThr...原创 2019-04-12 15:38:09 · 5902 阅读 · 0 评论 -
python的多线程(第三篇)关于全局变量的一些理解
首先作者在第一篇文章就说了,线程之间是共享全局变量的,具体体现在,我们编写的代码中,我们自己定义了一个顺序执行(join()),那么就不会出错,但是当同时进行的时候,就会出错,上篇文章举过一个小案例1,多线程同时对全局变量进行操作import threading# 定义全局变量g_num = 0# 循环一次给全局变量加1def sum_num1(): for i in r...原创 2019-04-12 18:08:25 · 7272 阅读 · 1 评论 -
python的多进程(第一篇)基本用法
1,什么是进程进程是系统资源分配的基本单位,每启动一个进程操作系统都需要为其分配运行资源通俗的来说,就是一个运行的程序或者软件一个进程至少有一个进程,一个进程至少有一个线程,多进程可以完成多任务2,进程的状态工作中,任务数往往大于cpu的核数,即一定有一些任务正在执行,而另外一些任务在等待cpu进行执行,因此导致了有了不同的状态就绪态:运行的条件都已近满足,正在等cpu执行执行...原创 2019-04-12 20:40:03 · 5321 阅读 · 0 评论 -
python的多进程(第二篇)特殊用法
1,进程之间不共享全局变量创建子进程其实是对主进程进行拷贝,进程之间互相独立,访问的全局变量不是同一个,所以进程之间不共享全局变量2,主进程会等待所有的子进程执行完成程序再退出import multiprocessingimport time# 测试子进程是否执行完成以后主进程才能退出def work(): for i in range(10): prin...原创 2019-04-13 14:26:45 · 5305 阅读 · 0 评论 -
python的多进程(第三篇)进程池的理解和使用
什么是进程池当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态生成多个进程,如果是上百个甚至上千个目标,收订的去创建进程的工作量巨大,此时就可以用到multiprocess模块提供的Pool方法初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求如果池中的进程数已经达到指...原创 2019-04-13 14:54:19 · 6199 阅读 · 0 评论 -
Python的Django的学习之路(第一篇)
什么是DjangoDjango,发音为[`dʒæŋɡəʊ],django是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。Django的特点...原创 2019-04-18 00:01:05 · 4974 阅读 · 0 评论 -
Python的Django的学习之路(第二篇)
什么是MVC模式有一种程序设计模式叫MVC,其核心思想是分工,解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可一直性,实现向后兼容M为Model,主要封装对数据库层的访问,对数据中的数据进行增删改查V为View,用于封装结果,生成页面展示的html内容C为Controller,用于接受请求,处理业务逻辑,与Model和View交互,返回结果什么是MVT模式M为Mode...原创 2019-04-18 00:13:03 · 4948 阅读 · 0 评论 -
Python的Django的学习之路(第三篇)
脚手架工程在django中,项目工程目录可以借助django提供的命令帮助我们创建。# 生成一个django项目工程的使用方式: django-admin startproject 工程名称django-admin : django生成项目工程的命令startproject : 快速创建一个django项目, 使用这个命令可以快速下载一个项目模板, 在我们所在的目录工程名称 ...原创 2019-04-18 00:31:48 · 4977 阅读 · 0 评论 -
Python中异步的处理celery(任务队列)
什么是celery帮助开发者解决调用第三方或者校验过程中的网络延迟问题,或者等待造成的客户端不好的体验celery是python里面提供的包,这个包叫做异步任务队列,可以用它实现异步任务避免因延时等问题影响主线程任务的等待celery有什么任务的发出者: 就是我们的第三方需要异步执行的函数,或者方法任务队列:存放需要执行的任务信息处理者:负责监听任务队列,发出任务,就是执行对应...原创 2019-04-23 00:04:59 · 6580 阅读 · 1 评论 -
Python的Django的学习之路(settiings文件的配置)
BASE_DIR 的理解BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))file : 可以理解为当前的文件os.path.abspath ( 文件 ) : 获取这个文件的绝对路径os.path.dirname( 路径 ) : 获取这个路径的上一级路径, 例如:path1 = os.path....原创 2019-04-19 12:33:31 · 4927 阅读 · 0 评论 -
关于pip换源的方法
cd ~/如果没有 .pip 文件夹,那么就要新建这个文件夹,mkdir .pip然后在.pip 文件夹内新建一个文件touch pip.conf[global]timeout = 6000index-url = http://mirrors.aliyun.com/pypi/simple/trusted-host = mirrors.aliyun.com[install]use...原创 2019-04-10 20:14:51 · 5446 阅读 · 0 评论