![](https://img-blog.csdnimg.cn/20210329135459280.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python
文章平均质量分 61
以实战为线索,深入掌握Python语言
一切如来心秘密
目前从事大数据领域后台开发,完善数据平台相关产品生态,包括数据开发平台,数据质量,元数据系统,离线调度系统,标签系统,统一权限管理系统等产品的设计与研发工作。
学有涯而知无涯,在技术上保持谦卑,在生活中一路高歌,记录点滴,不忘初心,方得始终~
展开
-
Filebeat k8s 部署(Deployment)采集 PVC 日志发送至 Kafka——日志处理(二)
在之前的文章中总结了如何配置 Django 项目的日志,将日志以 JSON 格式写入日志文件。我们的项目服务是部署在 k8s 上的,日志是挂载在 PVC 中的,接下来我们需要使用 Filebeat 去采集 PVC 中的日志,发送至 kafka 中,本文将总结如何在 k8s 上部署 Filebeat, 来采集 PVC 中的日志。原创 2024-07-19 14:09:04 · 1008 阅读 · 0 评论 -
Django 日志控制台输出、文件写入按天拆分文件,自定义 Filter 增加 trace_id 以及过滤——日志处理(一)
本文总结了如何在 Django 中进行日志配置,不同级别的日志输出到不同的文件中,以及如何给日志加上唯一 trace_id。后边我会总结如何将日志文件通过 filebeat 采集到 kafka,然后使用 FlinkSQL 实时将 kafka 中的日志数据同步到 clickhouse 中进行日志分析。原创 2024-07-19 11:00:43 · 858 阅读 · 0 评论 -
Pycharm配置使用远程解释器调试远程代码
文章目录1.配置SFTP2.配置远程解释器3.同步文件4.本地配置项目启动/调试远程代码4.本地配置项目启动/调试远程代码1.配置SFTP点击Tools——》Deployment——》Configuration:弹出界面如下,如果是第一次配置是没有内容的(我已经配置过了两个连接):点击左上角的加号,选中SFTP:配置SSH连接,第一次需要配置SSH连接,点击后边的省略号:SSH信息输入正确提示连接成功:点击Apply后点击OK:接下来需要配置本地与主机上的文件映原创 2021-06-04 15:02:13 · 559 阅读 · 1 评论 -
peewee的使用与异步peewee-async在tornado中的使用总结
peewee是数据库ORM操作的第三方库。文章目录建表保存数据查询更新和删除tornado使用异步ORM库peewee-async建表from datetime import datetimefrom peewee import *from peewee import Model# import peewee_asncdb = MySQLDatabase('my_db', host='139.196.161.70', port=3306, user="root", password="ro原创 2021-02-27 14:28:47 · 818 阅读 · 0 评论 -
tornado入门基础学习总结
文章目录tornado之hello worldtornado中为什么不能写同步方法tornado中的url配置define、options、parse_command_lineRequestHandler常用方法RequestHandler的子类tornado的templatetornado之hello worldtornado 服务启动比Django简单很多,有点像flask:from tornado import ( web, ioloop)class MainHandle原创 2021-02-24 17:59:43 · 837 阅读 · 0 评论 -
aiomysql在tornado中的简单实用
aiomysql库实现了PyMySQL库的异步功能,简单记录下aiomysql在异步框架tornado的简单使用,更详细的使用访问aiomysql官方文档将链接数据库的信息写在settings中,通过url配置传递给处理类,在初始化类时使用self.db将链接信息设为类全局属性,然后在请求函数中使用。代码import aiomysqlfrom tornado import ( web, ioloop,)from tornado.web import ( Redirec原创 2021-02-25 09:27:13 · 611 阅读 · 0 评论 -
Django2.x使用xadmin报错:RuntimeError:...doesn‘t declare an explicit app_label and isn‘t in an applicatio
报错RuntimeError: Model class django.contrib.admin.models.LogEntry doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.Failed to get real commands on module "online_shop": python process died with code 1: Traceback (most re原创 2020-12-11 11:35:33 · 526 阅读 · 0 评论 -
django项目规范目录结构及将敏感信息配置在环境变量中
settings配置文件区分环境使用django-admin startproject创建的项目下只有一个settings.py配置文件,然而在规范开发中是将开发环境的配置文件和生产环境的配置文件区分开的,我建立的一个app01项目的目录如下:将所有配置文件都放在叫做config的目录下,此时需要修改manage.py和wsgi.py文件(因为目录变了):manage.py如下修改:wsgi.py文件也要进行修改:如果项目使用了websicket编程还需要将asgi.py文件进行修改。原创 2020-08-28 11:48:50 · 447 阅读 · 0 评论 -
使用django-test-plus库编写单元测试用例
文章目录使用django-test-plus库进行单元测试编码前介绍编写url测试编写model类单元测试编写views单元测试使用django-test-plus库进行单元测试编码前介绍django-test-plus库简介django-test-plus库是对Django框架自带的单元测试模块的封装,提供更加方便的接口供我们使用。PyPI上的介绍Django项目需要进行单元测试的地方有:urlmodel类view视图函数或者类视图函数Django项目是以APP的形式构建的,所以我原创 2020-08-31 22:11:59 · 670 阅读 · 0 评论 -
Django Template Language语法记录
文章目录一、模板继承二、变量三、过滤器四、标签五、注释六、自动HTML转义七、方法调用八、自定义标签和过滤器学习网站实战\Django开发企业实战 面向就业/升职(中高级教程一、模板继承base.html文件,比如上方的导航栏<!DOCTYPE html><html lang="en"><head> <link rel="stylesheet" href="style.css"> <title>{% block tit原创 2020-08-15 12:03:51 · 470 阅读 · 0 评论 -
Django中模型的查询及其他操作
文章目录查询创建模型案例创建对象并保存更新外键和多对多字段检索对象检索所有对象检索单个对象切片限制数量字段查找跨越关系的查询过滤器引用模型上的字段pk查找快捷方式百分号与下划线自动转义QuerySet与缓存Q封装复杂语句比较对象删除对象同时更新多个对象相关对象一对多关系多对多关系一对一关系查询创建模型案例以下边模型案例学习from django.db import modelsclas...原创 2020-03-18 17:58:08 · 494 阅读 · 1 评论 -
Django中contenttypes框架与通用外键总结
文章目录ContentType介绍ContentType源码解析GenericRelation和GenericForeignKey介绍与使用ContentType介绍Django ContentTypes是由Django框架提供的一个核心功能,它对当前项目中所有基于Django驱动的model提供了更高层次的抽象接口。Django权限管理中的Permission借助ContentType实现了对任意models的权限操作。ContenType的通用类型- GenericRelation(通用外键关原创 2020-09-06 13:38:45 · 503 阅读 · 0 评论 -
Django通用类视图源码解析
文章目录Python中的多继承——MRO通用类视图ListView源码详解通用类视图DeleteView源码详解通用类视图CreateView源码详解Python中的多继承——MROPython支持多继承,这是Python语言的特色之一。什么是MROMRO全称是方法解析顺序(Method Resolution Order)。它定义了Python中多继承存在的情况下,解释器查找函数解析的具体顺序。什么是函数解析顺序假如有如下继承关系:class A(): def who_am_i(se原创 2020-08-30 18:22:14 · 359 阅读 · 0 评论 -
DRF使用simple JWT身份验证
文章目录前言登录返回token和refresh注册返回token前言在Django的前后端分离项目中DRF(Django Restframe Work)框架无疑是首选,关于token验证一般使用的是JWT,但是JWT只支持到Django1.x的版本。官方推荐Django2.x之后的版本使用simple JWT,官方文档。登录返回token和refreshuser 模型类:我user模型类继承的是django.contrib.auth.models.AbstractUser,这样可以使用Djang原创 2021-01-12 14:27:04 · 4107 阅读 · 7 评论 -
深入理解Python中的函数
文章是《流畅的Python》第五章节:一等函数的学习笔记和个人理解。文章目录1.0 前言1.1 匿名函数1.2 可调用对象1.2.1 自定义可调用类型1.3 函数内省1.4 函数的几种传参方式1.5 获取关于参数的信息1.5.1 使用inspect 模块获取函数信息1.5.2 函数注解1.6 支持函数式编程的包1.6.1 operator 包的介绍1.6.2 使用functools.partial 冻结参数1.0 前言在Python中记住一句真理:一切皆对象。包括函数也是对象,函数可以作为参数传递给另原创 2020-09-11 12:52:35 · 431 阅读 · 0 评论 -
上下文管理器和else
文章目录上下文管理器和else块前言if语句之外的else块上下文管理器和with块上下文管理器和else块前言文章是《流畅的Python》学习笔记与个人总结。Python中with管理上下文的的实现是个值得深究的主题。if语句之外的else块平常使用最多的是条件判断语句:if else,但是else也可以在for,while,try语句中使用。for: 仅当 for 循环运行完毕时(即 for 循环没有被 break 语句中止)才运行 else 块。while: 仅当 while 循原创 2020-09-24 09:49:27 · 170 阅读 · 0 评论 -
Python中的函数装饰器和闭包原理
本文为《流畅的Python》——函数装饰器和闭包的学习笔记和总结文章目录函数装饰器和闭包1.1 装饰器概述1.2 装饰器与被装饰对象执行顺序1.3 变量作用域规则1.4 闭包1.5 nonlocal声明1.6 自定义装饰器1.6.1 不带参数的装饰器1.6.2 带参数的装饰器1.7 标准库中的装饰器函数装饰器和闭包1.1 装饰器概述装饰器是可调用对象,其参数是另一个函数(被装饰的函数)。可以返回原函数,也可以返回装饰器内部定义的函数。@decoratedef target(): print原创 2020-09-15 23:14:34 · 413 阅读 · 0 评论 -
《流畅的Python》——字典的深入理解
文章目录1.1 泛映射类型1.2 字典推导1.3 常见的映射方法1.3.1 用setdefault处理找不到的键1.4 映射的弹性键查询1.4.1 defaultdict: 处理找不到的键的一个选择1.5 字典的变种1.6 不可变映射类型1.8 字典的背后1.8.1 散列表与散列值1.8.2 字典的实现及其导致的结果字典在Python语言中占有很重要的地位,模块的命名空间、实例的属性和函数的关键字参数中都需要用到字典。Python中的字典和集合的实现都是基于散列表的数据结构。1.1 泛映射类型co原创 2020-09-08 15:16:02 · 374 阅读 · 0 评论 -
符合Python风格的对象
文章目录符合Python风格的对象1.1 前言1.2 实现向量类1.3 classmethod与staticmethod1.4 格式化显示1.5 实现自定义类的可散列符合Python风格的对象1.1 前言本文是《流畅的Python》——符合Python风格的对象的读后笔记与总结。在其他面向语言中构建自定义类型通常是通过继承和重载来实现,然而在Python中只要构建鸭子类型就可以实现自定义类型:只需按照预定行为实现对象所需的方法即可。Python中有很多的魔法方法,这是Python语言的魅力之一,通原创 2020-09-17 14:44:54 · 190 阅读 · 0 评论 -
迭代器与生成器
文章目录前言可迭代对象可迭代对象与迭代器的对比生成器函数标准库中的生成器函数深入分析iter函数前言文章是《流畅的Python》学习笔记与个人总结。可迭代对象序列可以迭代的原因:iter函数iter函数的作用:检查对象是否实现了 iter 方法,如果实现了就调用它,获取一个迭代器。如果没有实现 iter 方法,但是实现了 getitem 方法, Python 会创建一个迭代器,尝试按顺序(从索引 0 开始)获取元素。如果尝试失败, Python 抛出 TypeError 异常,通常会提示“原创 2020-09-24 08:10:33 · 299 阅读 · 0 评论 -
流畅的Python学习笔记——数据模型与数据结构(一)
文章目录Python数据模型使用特殊方法模拟数值类型字符串表示形式算术运算符自定义的布尔值序列构成的数组列表推导式和生成器列表推导式同filter和map的比较生成器表达式元组元组和记录元组拆包具名元组切片为什么切片和区间会忽略最后一个元素对对象进行切片多维切片和省略给切片赋值对序列使用+和*序列的增量赋值list.sort方法和内置函数sorted用bisect来管理已排序的序列用bisect来搜索用bisect.insort插入新元素当列表不是首选时数组内存视图双向队列和其它形式的队列Python数据原创 2020-09-05 23:47:25 · 369 阅读 · 0 评论 -
Python中的协程
文章目录协程前言用作协程的生成器的基本行为终止协程和异常处理让协程返回值使用yield from协程前言文章是《流畅的Python》学习笔记与个人总结。协程协程是指一个过程,这个过程与调用方协作,产出由调用方提供的值。协程与生成器的关系在Python中协程是使用生成器实现的。最初的生成器是不支持协程的,因为最初的yield关键字只能在函数中使用不能在表达式中使用,而协程的调用方需要在表达式中使用yield关键来传递值,因此在Python2.5之后生成器支持在表达式中使用yield关键字。P原创 2020-09-25 13:57:37 · 419 阅读 · 0 评论 -
异步sqlalchemy ORM session使用总结
声明Base和提供异步session声明BaseBase = declarative_base()模型类需要集成该Base, 建议所有模型类都统一集成同一个Base, 这样在对模型类的创建和修改统一管理。sqlalchemy 使用异步ORM, 需要使用到异步的session:提供异步session通过装饰器提供异步session, 这样就不需要在操作数据库的方法中每次实例化一个异步session, 需要的地方装饰一下就行了。database.py:import contextlibfro原创 2021-08-18 17:46:05 · 3816 阅读 · 3 评论 -
paramiko用户名密码连接主机报错误:Invalid private key坑记录
paramiko库有两种连接主机的方式,一种是使用用户名和密码,一种是使用秘钥连接。当使用用户名密码连接时有个坑需要注意:当你连接的对方主机有SSH秘钥的时候,在使用用户名密码连接的时候,如果你不将对方主机的公钥放在本地主机的authorized_keys中就会报错ValueError: ('Invalid private key', [_OpenSSLErrorWithText(code=67764350, lib=4, func=160, reason=126, reason_text=b'e原创 2021-03-24 17:49:39 · 1853 阅读 · 4 评论 -
异步装饰器装饰协程(异步方法)坑记录
预备知识想了解装饰器原理的可以查看该文章Python中的函数装饰器和闭包原理想了解协程原理的可以查看该文章Python中的协程坑使用异步装饰器装饰协程比较写法比较简单,但是其中有一个坑,那就是装饰器中必须await method()调用被装饰协程,否则相当于没有装饰。代码#!/usr/bin/env python3# -*- coding: utf-8 -*-# @File : test_async_decorators.py# @Author: itnoobzzy# @Date :原创 2021-03-04 11:07:19 · 742 阅读 · 1 评论 -
Python实现不压缩带有文件夹文件传输工具
前言需求背景不管是微信,QQ发送文件还是ftp工具,目前尚未发现可以直接传输带有文件夹的文件(可能存在我未发现),一般都是将该文件压缩后传输。微信不支持发送文件夹截图:不知道为什么使用ftp工具从阿里云上传输文件到本地上巨慢。发送方发送文件想让多个接收方可以同时接收。脚本功能支持发送文件夹内容,速度非常快(但是也要看网络状况),在本地测试将一个文件夹文件发送到另一个目录,400多M只需要三秒。当然如果连接的是远程主机速度就没这么快了。服务端发送文件是多线程的,支持多个客户原创 2020-12-29 18:29:24 · 342 阅读 · 0 评论 -
设计模式在Python中的完美实现
文章目录Python设计模式1.0 前言1.1 设计模式——元素1.2 设计模式分类1.3 Python模式——创建模式单例模式工厂模式原型模式建造者模式1.4 Python模式——结构化模式适配器模式外观模式代理模式1.5 Python模式——行为模式迭代器模式观察者模式状态模式总结Python设计模式1.0 前言得益于Python的鸭子类型设计原则,Python相比于 C++ 和 Java 在实现设计模式上更加灵活,甚至可以轻松的将多种设计模式组合出更加强大的组合模式。文章不会依照常见书籍的做法原创 2020-12-02 11:41:45 · 448 阅读 · 1 评论 -
利用Python编写并发性程序——多线程、多进程、协程总结
文章目录前言并发性生产者/消费者架构使用锁的资源约束使用信号量的资源约束使用条件的速率控制器多进程机制Python中的异步执行Python中的asyncio模块concurrent.future——高级并发处理前言Python是一门高效的语言,使用Python可以轻松的开发出可扩展的高性能应用。什么叫做可扩展呢?横向扩展:一个系统通过增加更多的计算机节点来扩展,比如创建一个负载均衡的服务器集群,叫做横向扩展。纵向扩展:增加一个系统在单个计算机节点中的资源,包括存储量,CPU占用率等,叫做纵向扩展原创 2020-11-16 21:33:47 · 736 阅读 · 0 评论 -
Python函数式编程模块总结——functools与itertools
文章目录前言functools——高阶函数和可调用对象上的操作lru_cache(maxsize=128, typed=False)total_orderingpartial(func, *args, **keywords)partialmethod(func, *args, **kwargs)reduce(func, iterable[, initializer])singledispatchwraps(wrapped, assigned=WRAPPER_ASSIGNMENTS, updated=WRAP原创 2020-11-13 09:21:19 · 440 阅读 · 0 评论 -
建立virtualwrapper虚拟环境报错:No model named stevedore
今天虚拟机新装了centos7的系统,顺便安装了python3.7和pip3,打算继续安装虚拟环境virtualwrapper时出问题了:按照惯网上的方法安装完virtual后用virtual测试了下可以使用。但是按照网上的方法安装完virtualwrapper之后,配置文件.bashrc也修改完毕,source .bashrc的时候报错:配置文件修改参考博客错误原因:没有安装stevedore,但是这个包必须用python2的pip安装,安装时可能会遇到需要别的模块都使用python2的pip原创 2020-08-07 16:41:10 · 199 阅读 · 0 评论 -
树——Python实现学习笔记
文章目录树树的基本概念树的定义和属性树的抽象数据类型计算深度和高度二叉树二叉树的抽象数据类型树的实现树的遍历用Python实现树遍历树树的基本概念树是一种非线性数据结构树的非线性是一种组织关系,这种关系是分层的。树的定义和属性除了最顶部的元素,每个元素在树中都有一个双亲节点和零个或者多个孩子节点最顶部元素称为根节点如果树T不为空,则它一定具有一个称为根节点的特殊节点,并且该节点没有父节点每个非根节点v都具有唯一的父节点w,每个具有父节点w的节点都是节点w的一个孩子同一个父节点的孩子原创 2020-07-16 19:47:50 · 415 阅读 · 0 评论 -
深入理解Python中基于数组的序列
文章目录低层次数组引用数组Python中的紧凑数组动态数组和摊销实现动态数组Python序列类型的效率Python的列表类Python的字符串类低层次数组计算机主存由位信息组成,多位组成更大的单元,例如一个字节相当于8位。计算机将信息存储在字节中,存储地址表示的就是该字节在计算机中的二进制表示。计算机内存中每个字节都被连续编了号,基于这种存储地址,我们将计算机主存称为随机存取存储器(RAM),访问任何单一字节的时间都为O(1)。一组相关变量能够接连存储在计算机存储器的一块连续区域内,称为数组。原创 2020-06-30 16:37:32 · 719 阅读 · 0 评论 -
python运算符//与%的理解
python支持的算数运算符运算符操作+加-减*乘/真正的除//整数除法%模运算符除了整除以外,当操作数中有浮点类型时,结果也是浮点类型当两个操作数都是整型时,/运算符返回不大于商的最大整数;当至少有一个操作数是浮点类型时,其结果是真正除法的结果python扩展了运算符//和%,//是别的语言不存在,python独有的运算符运算符//详解假设变量n和m分别代表商式n÷m的被除数和除数,python中为q=n//m。n和m都为原创 2020-06-28 16:26:13 · 11926 阅读 · 0 评论 -
Python中的元类理解
转载链接类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):... pass... >>> my_object = ObjectCreator()>>> print(my_object)<__转载 2020-06-22 09:11:02 · 104 阅读 · 0 评论 -
python30个小技巧
转载:https://www.pythontab.com/html/2018/pythonjichu_0917/1351.html编程中用到可以简化代码的30个小技巧,当然python的技巧远不止这些,让我们在学习的途中去发现宝藏吧。推荐一个python网站取了一定有惊喜python中文开发者社区门户。原地交换两个数字x, y =10, 20print(x, y)y, x = x, yprint(x,y)10 2020 10链状比较操作符n = 10print(1 &l转载 2020-06-03 11:38:12 · 316 阅读 · 0 评论 -
Django模型实例学习
文章目录模型使用模型初识模型字段选项备注名关联关系Many-to-one relationshipsMany-to-many relationshipsOne-to-one relationships模型每一个模型都映射一个数据库表。使用模型定义完模型后需要在INSTALLED_APPS中添加models.py文件的模块的名字。先数据库迁移:python manage.py make...原创 2020-03-17 18:37:13 · 314 阅读 · 0 评论 -
FastDFS与nginx搭建分布式文件上传服务器
文章目录分布式图片服务器FastDFSFastDFS概述文件上传流程文件下载流程简易FastDFS架构FastDFS安装使用python客户端上传测试分布式图片服务器FastDFSFastDFS概述FastDFS 是用 c 语言编写的一款开源的分布式文件系统。FastDFS 为互联网量身定制, 充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用 FastDFS 很...原创 2020-03-02 21:43:39 · 347 阅读 · 0 评论 -
Python两大特性和四大基本语法
Python 两大特性和四大基本语法Python 是一门动态的、强类型语言 。什么是动态语言?要了解什么是动态语言,要首先了解**“类型检查”**。类型检查是验证类型约束的过程,编译器或解释器通常在编译阶段或运行阶段做类型检查。类型检查就是查看“变量”和它们的”类型”,然后判断表达式是否合理。例如,不能拿一个 string 类型变量除以浮点数变量。如果类型检查发生在程序运行阶段(run...转载 2020-02-25 21:03:23 · 480 阅读 · 0 评论