![](https://img-blog.csdnimg.cn/2c7cf043c7654f1a9e73cafa77b78461.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
python学习与分享
文章平均质量分 69
用于我个人学习python过程中的一些感悟与学习记录
go&Python
开发转运维(devops,prometheus)中,顺便做做爬虫,还想写go。目标很大,路在脚下
展开
-
rabbitmq 从入门到精通
消息队列就是基础数据结构中的“先进先出”的一种数据机构。想一下,生活中买东西,需要排队,先排的人先买消费,就是典型的“先进先出”原创 2022-08-26 17:32:48 · 682 阅读 · 0 评论 -
python RPC框架
RPC 是指 远程过程调用, 简单点说就是 两台服务器 A,B 一个应用部署在 A 服务器上,想要调用 B 服务器上应用提供的函数或方法, 由于不在一个内存空间,不能直接调用。需要通过网络来表达调用的语义 和 传达调用的数据, 放回的结果。...原创 2022-08-26 17:29:28 · 3479 阅读 · 0 评论 -
python可变不可变类型与go的值类型与引用类型
在python中,有一句话叫做一切皆对象,一切皆引用,因此在python中,其实不存在真正意义上的基础数据类型,无论是列表,字符串,数值类型,实际上都是一个个类所产生的对象。这也是为什么python中 整型 没有长度限制,能够无限大的原因。也正因为python中一切皆对象,python 底层存储值的方式,都是 变量名 -> 内存地址,内存地址-> 数据,这种引用传递的方式。如果python没有做任何处理,按理来说,不管是列表还是数字,字符串,修改值时,内存地址应该都是不变的。但是仅有集合,列表,字典三种类原创 2022-07-01 22:24:04 · 243 阅读 · 0 评论 -
分布式爬虫
文章目录分布式爬虫介绍scrapy-redis组件补充分布式爬虫介绍原来scrapy的Scheduler维护的是本机的任务队列(存放Request对象及其回调函数等信息)+本机的去重队列(存放访问过的url地址)所以实现分布式爬取的关键就是,找一台专门的主机上运行一个共享的队列比如Redis,然后重写Scrapy的Scheduler,让新的Scheduler到共享队列存取Request,并且去除重复的Request请求,所以总结下来,实现分布式的关键就是三点:共享队列重写Schedu原创 2022-04-04 00:08:45 · 126 阅读 · 0 评论 -
scrapy 框架
文章目录scrapy 框架介绍5大组件和2大中间件介绍安装命令行命令目录介绍settings介绍scrapy的数据解析scrapy的持久化存储提升scrapy爬取数据的效率scrapy的中间件使用scrapy 框架介绍Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据(例如 Amazon A原创 2022-04-03 23:23:57 · 747 阅读 · 0 评论 -
selenium使用
文章目录selenium使用介绍使用1 下载驱动2 下载selenium模块3. 简单使用4. selenium方法介绍4.1 元素定位4.2 节点交互4.3 动作链4.4 执行JavaScript4.5 获取节点信息4.6 延时等待4.7 前进后退4.8 Cookies4.9 异常处理selenium使用介绍selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selen原创 2022-03-31 17:53:23 · 709 阅读 · 0 评论 -
写接口的步骤
写接口的步骤路由请求来了先走路由-> 视图函数->序列化类视图函数视图函数继承那个类 想改路由/自动生成路由 继承ViewSetMixin 如果想跟数据库和序列化类打交道 继承GenericAPIView 增删查改 继承五个视图扩展类序列化类是否需要子序列化 -子序列化:teacher = TeacherSerializer()是否需要序列化某个没有的字段 -想序列化某个没有的字段,可以写在model类中或者序列化类中可能需要重写validata或者原创 2022-03-27 12:32:55 · 599 阅读 · 0 评论 -
过滤器进阶
文章目录过滤器进阶自定义过滤规则django_filters使用过滤器进阶自定义过滤规则写一个类,继承BaseFilterBackend,重写filter_queryset方法,返回queryset对象,返回的对象就是过滤完的from rest_framework.filters import BaseFilterBackend,SearchFilter# SearchFilter可以用于模糊查询class MyFilter(BaseFilterBackend): def fil原创 2022-03-26 11:15:41 · 473 阅读 · 0 评论 -
ORM 常用字段
文章目录1 ORM字段AutoFieldIntegerFieldCharFieldDateFieldDateTimeField常用和非常用字段2 ORM字段参数3 关系字段ForeignKeytoto_fieldrelated_name**related_query_name****on_delete**db_constraintOneToOneFieldtoto_fieldon_deleteManyToManyFieldtorelated_namerelated_query_namesymmetrical原创 2022-03-25 16:36:38 · 344 阅读 · 0 评论 -
django使用celery
django使用celery简单补充一下,在django框架中如何使用celery,进行celery任务详情请参考 celery的使用官方建议,celery_task文件夹应放在项目目录下celery.py 中配置from celery import Celery# 加载django环境import osimport djangoos.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev")d原创 2022-03-25 14:40:51 · 671 阅读 · 0 评论 -
celery的使用
文章目录celery的使用celery是什么celery的使用celery包结构celery的使用celery是什么celery是一个异步任务框架,用来执行异步任务,执行延迟任务,执行定时任务Celery is a project with minimal funding, so we don’t support Microsoft Windows. Please don’t open any issues related to that platform.由于celery没有windows版本原创 2022-03-23 22:04:43 · 2105 阅读 · 1 评论 -
python操作redis
文章目录python操作redisPython操作Redis之普通连接Python操作Redis之连接池python操作之String操作python操作之Hash操作python操作之List操作python操作之Set操作redis的其他操作管道Django中使用redispython操作redisPython操作Redis之普通连接1. 下载模块 pip install redis2. 简单使用 from redis import Redis conn = Redis() #原创 2022-03-23 16:40:49 · 1454 阅读 · 0 评论 -
短信验证功能的实现
短信验证功能的实现利用python和腾讯云短信服务实现发送短信业务腾讯云短信服务1 注册一个公众号() -https://mp.weixin.qq.com/ -注册订阅号,一路下一步,申请个人 -截一个图(首页)2 腾讯云,---注册---实名:-https://console.cloud.tencent.com/smsv23 创建模板(审核)4 应用管理(创建一个应用,记住appid和App Key)5 扣代码 短信SDK 2.0 参考地址 https://clo原创 2022-03-20 22:27:14 · 1219 阅读 · 0 评论 -
git从入门到精通
文章目录版本控制器git简介git与svn比较git的工作流程版本库间的通信git分支管理git使用流程(核心总结)安装基础命令将已有的文件夹 - 初始化为git仓库在指定目录下 - 初始化git仓库在仓库目录终端下 - 设置全局用户在仓库目录终端下 - 设置局部用户查看仓库状态工作区操作撤销工作区操作:改、删(了解)工作区内容提交到暂存区撤销暂存区提交:add的逆运算(很少使用)提交暂存区内容到版本库撤销版本库提交:commit的逆运算过滤文件多分支开发分支操作远程git开发两种本地与远程仓库同步remo原创 2022-03-19 20:25:57 · 287 阅读 · 0 评论 -
django 实现跨域请求
文章目录跨域请求一 同源策略二 CORS(跨域资源共享)简介三 CORS基本流程四 CORS两种请求详解五 Django项目中支持CORS六 django 使用django-cors-headers 解决跨域问题1、使用pip安装2、添加到setting的app中3、添加中间件4、setting下面添加下面的配置跨域请求一 同源策略同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在原创 2022-03-16 19:55:44 · 739 阅读 · 0 评论 -
三大操作系统python虚拟环境的配置与使用
文章目录虚拟环境的搭建优点windows安装配置虚拟环境管理器工作目录MacOS、Linux安装工作文件配置使用虚拟环境的搭建优点1、使不同应用开发环境相互独立2、环境升级不影响其他应用,也不会影响全局的python环境3、防止出现包管理混乱及包版本冲突windows安装# 建议使用pip3安装到python3环境下pip3 install virtualenvpip3 install virtualenvwrapper-win配置虚拟环境管理器工作目录# 配置环境变量:# 控原创 2022-03-15 21:18:25 · 138 阅读 · 0 评论 -
pip安装源
pip安装源介绍"""1、采用国内源,加速下载模块的速度2、常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里:https://mirrors.aliyun.com/pypi/simple3、加速安装的命令: -- >: pip install -i https://pypi.douban.com/simple 模块名"""永久配置安装源Windows"""1、文件管理器文件路径地址栏敲:%APPDATA% 回车,快速进入原创 2022-03-15 18:41:39 · 4145 阅读 · 0 评论 -
Django-用户权限和缓存
文章目录Django-用户权限1. Django的权限项2. 创建权限3.分配权限4. 检测用户是否有某权限,和所有权限,组权限5. 权限校验,使用permission_required装饰器6. 测试7. 首页index.html中通过权限控制按钮Django 缓存Django-用户权限RBAC(Role-Based Access Control,基于角色的访问控制)就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在原创 2022-03-15 14:42:58 · 493 阅读 · 0 评论 -
drf JWT组件
文章目录drf JWT组件JWT 原理校验方式drf项目多的jwt认证开发流程(重点)JWT 简单使用base64编码解码JWT 控制登录接口返回的数据格式自定义基于jwt的权限类手动签发token(多方式登录实现)方式1 逻辑写在序列化类中方式2 逻辑写在视图类中JWT 的配置参数drf JWT组件jwt = Json Web TokenJWT 原理jwt分三段式:头.体.签名 (head.payload.sgin)头和体是可逆加密,让服务器可以反解出user对原创 2022-03-15 13:55:21 · 5467 阅读 · 1 评论 -
coreapi自动生成API接口文档
文章目录1 安装:2 在路由中配置视图中使用方法1 安装:pip install coreapi2 在路由中配置from rest_framework.documentation import include_docs_urls urlpatterns = [ ... path('docs/', include_docs_urls(title='站点页面标题')) ] 新版本需要在配置文件中配置: REST_FRAMEWORK={ 'D原创 2022-03-14 11:47:33 · 1309 阅读 · 0 评论 -
drf 分页器组件
文章目录drf 分页器组件为什么要使用分页DRF使用分页器分页模式全局配置局部配置DRF内置分页器PageNumberPagination分页器LimitOffsetPagination分页器CursorPagination分页器视图drf 分页器组件为什么要使用分页我们数据表中可能会有成千上万条数据,当我们访问某张表的所有数据时,我们不太可能需要一次把所有的数据都展示出来,因为数据量很大,对服务端的内存压力比较大还有就是网络传输过程中耗时也会比较大。通常我们会希望一部分一部分去请求数据,也原创 2022-03-13 17:33:41 · 312 阅读 · 1 评论 -
ORM配合DRF序列化组件使用
文章目录ORM配合DRF序列化组件使用ORM建表操作补充ORM 增删查改实操核心源码序列化操作补充ORM配合DRF序列化组件使用ORM建表操作补充同一表不能有两个自增class BaseModel(models.Model): is_delete = models.BooleanField(default=False) create_time = models.DateTimeField(auto_now_add=True) last_update_time = mode原创 2022-03-13 16:37:08 · 1060 阅读 · 0 评论 -
drf 频率过滤与排序组件
文章目录drf 频率过滤与排序组件频率组件内置频率类全局配置与使用局部配置与使用限制登录用户的访问频次自定义限制类过滤组件(Filtering)排序组件drf 频率过滤与排序组件频率组件控制用户对某个url请求的频率内置频率类BaseThrottle是所有类的基类:方法:**def get_ident(self, request)**获取标识,其实就是获取ip,自定义的需要继承它AnonRateThrottle:未登录用户ip限制,需要配合auth模块用,使用DEFAULT_THRO原创 2022-03-12 18:42:16 · 246 阅读 · 0 评论 -
drf 权限组件
文章目录drf 权限组件权限Permissions权限源码分析自定义权限的使用内置权限drf 权限组件权限Permissions权限控制可以限制用户对于视图的访问和对于具体数据对象的访问。在执行视图的dispatch()方法前,会先进行视图访问权限的判断在通过get_object()获取具体对象时,会进行模型对象访问权限的判断权限源码分析源码路径: APIView---->dispatch---->initial—>self.check_permissions(r原创 2022-03-12 14:18:05 · 365 阅读 · 1 评论 -
drf 认证组件
文章目录drf 认证组件认证的写法认证的源码分析认证组件的使用drf 认证组件认证的写法写一个类,继承BaseAuthentication,重写authenticate,认证的逻辑写在里面,返回两个值,一个值最终给了Request对象的user,认证失败,抛异常: APIException或者AuthenticationFailed可以全局使用或局部使用认证的源码分析查看源码步骤:APIVIew---->dispatch方法—>self.initial(reques原创 2022-03-11 18:29:06 · 330 阅读 · 0 评论 -
drf 路由组件
文章目录drf 路由组件自定义路由(原始方法)半自动路由(视图类继承ModelViewSet)路由Routersaction的使用drf 路由组件自定义路由(原始方法)urlpatterns = [ url(r'^books/$', views.BookView.as_view()), url(r'^books/(?P<pk>\d+)$', views.BookDetailView.as_view()),]半自动路由(视图类继承ModelViewSet)urlpat原创 2022-03-11 16:16:21 · 351 阅读 · 0 评论 -
drf 视图组件
文章目录drf 视图组件1. 2个视图基类1.1 APIView1.1.1 基于APIView写接口1.2 GenericAPIView1.2.1 基于GenericAPIView写接口2. 5个视图扩展类1)ListModelMixin2)CreateModelMixin3)RetrieveModelMixin4)UpdateModelMixin5)DestroyModelMixin2.1 基于GenericAPIView和5个视图扩展类写的接口GenericAPIView原创 2022-03-11 15:10:13 · 277 阅读 · 0 评论 -
drf 请求与响应
文章目录drf请求与响应1. Request1.1 常用属性1).data2).query_params2. Response2.1 构造方式2.2 常用属性1).data2).status_code3).content2.3 状态码1)信息告知 - 1xx2)成功 - 2xx3)重定向 - 3xx4)客户端错误 - 4xx5)服务器错误 - 5xxdrf请求与响应1. RequestREST framework 传入视图的request对象不再是Django默认的HttpReques原创 2022-03-10 10:05:32 · 448 阅读 · 1 评论 -
drf 序列化组件
文章目录DRF 序列化组件1 序列化组件介绍2 简单使用步骤3 序列化类的字段类型与选项4 序列化组件修改数据5 read_only 和 write_only6 查询所有7 新增数据8 删除一个数据9 模型类序列化器10 源码分析11 Serializer高级用法DRF 序列化组件1 序列化组件介绍序列化: 序列化器会把模型对象装换成字典,经过response以后变成json字符串反序列化: 把客户端发送过来的数据进行数据校验,通过后经过reques原创 2022-03-09 19:13:32 · 788 阅读 · 0 评论 -
BBS项目
BBS项目数据表设计1.用户表 继承AbstractUser 扩展 phone 电话号码 avatar 用户头像 create_time 创建时间 外键字段 一对一个人站点表2.个人站点表 site_name 站点名称 site_title 站点标题 site_theme 站点样式3.文章标签表 name 标签名 外键字段 一对多个人站点原创 2022-03-09 18:26:19 · 193 阅读 · 0 评论 -
Django-rest-framework简介
文章目录Django-rest-framework简介1. wen开发模式2. api接口3. 端口测试软件4. Restful规范(重点)5. drf的安装和简单使用CBV核心源码分析APIView源码分析rest_framework.request中Request源码Django-rest-framework简介1. wen开发模式前后端混合开发(前后端不分离): 返回的html的内容,需要写模块,在Django中叫做DTL(Django-Templates-Langua原创 2022-03-08 16:03:00 · 623 阅读 · 0 评论 -
Django Auth模块
Django框架第十二次淼㵘Auth模块在我们执行数据库迁移命令时,Django会生成很多自带的表:(django_session, auth_user…),并且还自带一个admin路由,需要输入用户名和密码才能访问,其数据参考的就是auth_user表,并且admin路由必须是管理员用户才能进入创建超级用户(管理员)python manage.py createsuperuser# 命令行创建时,Email address 可以为空 密码需要8位及以上 超级用户创建成功后,a原创 2022-02-28 20:13:35 · 883 阅读 · 0 评论 -
Django 中间件与csrf跨站请求
文章目录Django框架的第十一次叒叕Django中间件自定义中间件csrf中间件介绍csrf校验使用csrf相关装饰器importlib基于Django中间件的重要编程思想Django框架的第十一次叒叕Django中间件按照官方说法:Django中间件是一个用来处理Django的请求和响应的框架级别的钩子。它是一个轻量、低级别的插件系统,用在全局范围内改变Django的输入和输出。每个中间件组件都负责做一些特定的功能。简单点说Django中间件就是Django的门户,主要功能有两点请求来的时原创 2022-02-28 15:29:40 · 614 阅读 · 0 评论 -
Django cookie、session与CBV装饰器
文章目录Django框架的第十次蹀躞cookie与session什么是Cookie查看CookieDjango中操作Cookie什么是SessionDjango中操作sessionCBV添加装饰器三种方式Django框架的第十次蹀躞cookie与session扩充:由于HTTP协议是无状态的。因此它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受到前面的请求请求响应情况直接影响,也不会直接影响后面的请求响应情况。对服务器来说,每次的请求都是全新的。状态可以理解为客户端和服务端在某次会原创 2022-02-27 19:56:43 · 607 阅读 · 1 评论 -
Django 分页器与Forms组件
文章目录Django框架的第九次龖鷄批量插入自定义分页器1. 自定义分页器思路2. 自定义分页器源码及使用Forms组件1. Forms组件介绍2. Forms组件基本使用3. 校验数据4. 渲染标签展示提示信息钩子函数(HOOK)forms组件其他参数及补充知识点Django框架的第九次龖鷄批量插入ORM批量插入数据处理(bulk_create)def ab_pl(request): book_list = [] for i in range(1000原创 2022-02-26 22:44:26 · 455 阅读 · 0 评论 -
django 实现 ajax
文章目录django框架的第8次交手AJAX简介jQuery实现Ajax前后端传输数据的编码格式(contentType)Ajax发送json格式数据django自带的序列化组件ajax结合sweetalert实现删除二次确认django框架的第8次交手AJAX简介AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步的Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML)。AJ原创 2022-02-26 12:41:48 · 965 阅读 · 0 评论 -
Django ORM 高级操作
文章目录Django框架的第七次探索聚合查询分组查询F与Q查询Django开启事务ORM中常用参数数据库查询优化Django框架的第七次探索补充: Django框架中只要是跟数据库相关的模块基本都在django.db.models 中,如果没有就应该在django.db里面聚合查询聚合查询(aggregate)通常情况下都是配合分组一起使用的使用方式:1. 导入模块 from django.db.models import Max,Min,Sum,Count,Avg原创 2022-02-24 15:07:07 · 1015 阅读 · 0 评论 -
Django ORM语法进阶
文章目录Django的第六次链接单表操作必知必会13条查看内部sql语句的方式神奇的双下划线查询一对多外键增删查改多对多外键增删查改正反向概念多表查询案例子查询(基于对象的跨表查询)联表查询(基于双下划线的跨表查询)Django的第六次链接ORM语法进阶单表操作在操作前可以先配置好测试环境,方便对数据库进行测试1. 在tests.py文件中写入下面代码 (任意新建一个文件也行)import osif __name__ == "__main__": os.environ.set原创 2022-02-22 11:31:57 · 324 阅读 · 0 评论 -
Django 模板语法
在模板语法中:模板语法的使用前端页面展示结果基本语法:后端补充代码展示结果模板语法之标签标签就是一堆逻辑,包括for循环 if判断等注意:自定义过滤器:自定义标签:自定义inclusion_tag:内部原理总结: 当html页面某一个地方的页面需要传参数才能够动态的渲染出来,并且多个页面上都需要使用该局部 那么就考虑将改局部页面做成inclusion_tah形式模板继承的实现:模板页面的创建(home.html)子页面继承...原创 2022-02-20 17:57:02 · 1048 阅读 · 0 评论 -
Django 名称空间、伪静态、视图层、FBV与CBV介绍
解决方法:伪静态视图层三板斧JsonResponse对象form表单上传文件FBV和CBVCBV源码剖析总结注意: 不要轻易修改源码原创 2022-02-20 13:02:18 · 575 阅读 · 0 评论