自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 VUE-插槽详细图解

Vue插槽, 是学习vue中必不可少的一节, 当初刚接触vue的时候, 对这些掌握的一知半解, 特别是作用域插槽一直没明白, 直到最近复习前端知识的时候, 了解了一些需求, 再联想到插槽的特性, 突然豁然开朗1. 普通插槽通常来说我们组件中内的标签是无法放任何外部组件内容的如果想子组件中的内容, 由外部的组件来决定我们可以使用普通插槽,在组件内声明 slot 标签很多时候,我们只...

2020-04-06 13:11:16 1376 1

原创 python爬虫实现百度翻译小工具

使用pythoninstaller打包网页分析 可以自己尝试实现哦通过分析每次翻译发送的请求每次请求返回的都是json数据, json解析后得到翻译之后的字符串外层是个data,内层是个列表,每个元素中有不同的释义...

2020-04-06 11:26:14 514

原创 Python-:协程-生成器实现

协程一句话解释就是: 单线程执行多任务协程是线程的更小切分, 又称作’微线程’:线程是系同级别的,是有操作系统调度, 而协程是程序级别的,使我们自己设置的规则调度协程的概念: 在一个线程中会有很多的函数, 姑且就称为子程序吧, 在子程序执行的过程中,我们可以按照逻辑子程序执行正在执行的函数,让其执行其他的子程序,执行一段时间后,继续执行原来的子程序,且还是从原来中断的地方继续执行,类似 y...

2020-04-06 11:23:47 313

原创 git冲突文件整理筛选出冲突前后文件

核心就是使用中间文件,因为没有办法直接修改源文件注意此程序会检索当前文件下的所有文件,并进行冲突拆解git冲突文件复杂,这里使用了一个一个变量来记录当前游标的状态,只有游标为指定值得时候,才会对读取到的当前行进行写入import osdef new_file(file_name): a = 0 base_file = open(file_name, 'r', enc...

2020-04-06 11:22:10 936

原创 uWsgi日志定时每天切割

方法1尝试几次通过网上的touch方法都不行最后得到解决思路:既然mv uwsgi.log文件后,uwsgi还是会自动找到mv后的文件继续写入,那么我就索性不再mv,直接cp,把log文件cp出来,再把原log文件的内容清空,这样曲线救国,想想其实比网上的那种方法要简单的多最后通过sh脚本+crontab定时任务,每天让其00:00自动cp然后清空即可达到log文件每日备份的效果...

2020-04-06 11:21:09 809

原创 通过环境变量来分别Python中的连接数据库配置

修改/etc/profilevi /etc/profile然后添加到末尾,source /etc/profile使刚才的配置加载生效不太行,这个修改完之后关闭终端之后,再打开终端就失效了,配置虽然还在,难道每次都要重新加载source /etc/profile有点难受, 而且python也无法读取到设置的变量注意注入改错了之后bash无法使用linux命令的话可以使用vi的路径打开配置文件...

2020-04-06 11:11:47 467

原创 uwsgi 启动 重启 停止

uWSGI 通过 xxx.ini 启动后会在相同目录下生成一个 xxx.pid 的文件,里面只有一行内容是 uWSGI 的主进程的进程号如果没有pid文件则可以查看ini 文件中的配置项是否有修改过 pidfile启动:uwsgi --ini xxx.ini重启:uwsgi --reload xxx.pid停止:uwsgi --stop xxx.pid...

2020-04-06 11:09:17 545

原创 git强制拉取更新

git fetch --allgit reset --hard origin/mastergit pull //可以省略git fetch 指令是下载远程仓库最新内容,不做合并git reset 指令把HEAD指向master最新版本

2020-04-06 11:07:28 1986

原创 部署出错: Listen queue size is greater than the system max net.core.somaxconn (128)

背景迁移一个nginx+uwsgi+django项目,在uwsgi启动时报错。错误启动日志中的错误:Listen queue size is greater than the system max net.core.somaxconn (128)解决错误的提示很清楚,再加上网上一搜,就知道是uwsgi的配置文件中的listen的值设置太大了,超过系统默认值128,报错但是网...

2020-04-06 11:06:43 1860

原创 python去除标签获得文本

最近公司要做一个论坛模块,需要对文章添加一个简略的信息,就是获取文章文字的前几十个字文章由于是富文本编辑器或者md编辑器导致纯文本提取困难所以想到了bs4库中的一个工具from bs4 import BeautifulSoupdef simple_content_tool(content): ''' 得到文章的简略信息 :param content: :...

2020-04-06 11:05:09 1173

原创 Py快速识别文本编码

import chardetd = b"\xd7\xca\xbd\xf0\xb2\xbb\xd7\xe3"print(chardet.detect(d))>>> {'encoding': 'ISO-8859-1', 'confidence': 0.73, 'language': ''}

2020-04-06 11:04:29 239 1

原创 简单的使用Cython

创建源文件pyx创建编译文件‘dot_cython’ 是我们要生成的动态链接库的名字sources 里面可以包含 .pyx 文件,以及后面如果我们要调用 C/C++ 程序的话,还可以往里面加 .c / .cpp 文件language 其实默认就是 c,如果要用 C++,就改成 c++ 就好了include_dirs 这个就是传给 gcc 的 -I 参数library_dirs...

2020-04-06 11:03:18 275

原创 python_单分派泛函数

只要被 singledispatch 装饰的函数 就是一个单分派的 single-dispatch 的泛函数 generic functions@singledispatch 用来标记需要处理不同类型数据的基函数单分派: 根据一个参数的类型, 以不同方式执行相同的操作的行为多分派: 可根据多个参数的类型选择专门的函数的行为泛函数: 多个函数绑在一起组合成一个泛函数from funct...

2020-04-06 11:02:47 238

原创 python_functools模块实现函数调用缓存

Least Recently Used 的缩写, 导入这个包 使用装饰器的方式实现函数调用的缓存maxsize 参数指定存储多少个调用的结果,为了得到最佳性能, maxsize 应该设为 2 的幂from functools import lru_cache# Least Recently Used 的缩写, 导入这个包 使用装饰器的方式实现函数调用的缓存# maxsize 参数指定存...

2020-04-06 11:02:03 218

原创 html-css:浮动_清除浮动

1.浮动清除浮动之前我们首先需要了解为什么要清除浮动1. 假设我们有一个父盒子,不设置高度,其高度有内部子盒子的大小自动撑开,这样是完全可行的,因为有时候我们并不想直接固定死父盒子的大小,而是根据子盒子的大小变化2. 但是有一个问题: 如果我们给子盒子加了浮动,加了浮动的盒子脱离了标准流,而父盒子还是属于标准流,而且父盒子没有设置高度,就导致父盒子的上下边框合并在一起变成一条线2. 清...

2020-04-06 11:00:34 180 1

原创 设置pycharm>跳板机>服务器的远程开发环境

1. 配置本地和跳板机的免密登录2. 本地配置vim ~/.ssh/configHost * ControlPersist yes ControlMaster auto ControlPath ~/.ssh/%n:%p完成配置后在本地登录一次跳板机3. 登录跳板机,在跳板机上做如上配置完成配置后,在跳板机上ssh登录一次内网服务器4. 设置ssh...

2020-04-06 10:55:39 2056

原创 手动解析json字符串

一行很简短的代码实现 loads = lambda x:eval(x, type('my_type', (dict,), dict(__getitem__=lambda s, n: n))()) print(loads(json_str))

2020-04-06 10:50:56 225 1

原创 python_协程_gevent模块

import requests# 导入 geventimport gevent# 由于切换是在IO操作时自动完成 所以gevent需要修改Python自带的一些标准库 这一过程在启动时通过monkey patch(猴子补丁)完成from gevent import monkey; monkey.patch_socket() # 注释这句话,则协程不会起效果,需要写在导包的语句下面...

2020-03-18 09:29:16 162

原创 python_下标取值原理简单实现_getitem

import collectionsfrom random import choice# 创建一个牌类 只有一个 牌的大小 和 牌的花色card = collections.namedtuple('card____',['rank','suits'])class image: ranks = [str(i) for i in range(2,11)] + list('JQKA'...

2020-03-18 09:27:03 1022

原创 DRF-模型视图集ModelViewSet

继承自GenericAPIVIew,同时包括了ListModelMixin、RetrieveModelMixin、CreateModelMixin、UpdateModelMixin、DestoryModelMixin当然也可以自定义动作不需要再手动写动作了, 指定queryset, serializer_class, pagination_class即可路由中直接再as_view()中映射...

2020-03-12 20:39:32 648

原创 DRF-视图集ViewSet

是类视图继承自ViewSet, ViewSet内已经封装好了相应的处理方法class StudentInfoViewSet(viewsets.ViewSet): def list(self, request): ... def retrieve(self, request, pk=None): ...ViewSet视图集类不再实现ge...

2020-03-12 20:33:17 702

原创 DRF-类视图的七个子类

ListModelMixin列表视图扩展类, 提供list(request, *args, **kwargs)方法快速实现列表视图, 返回200状态码该Mixin的list方法会对数据进行过滤和分页源码class ListModelMixin(object): """ List a queryset. """ def list(self, req...

2020-03-12 20:32:24 303

原创 DRF-基类: APIview和GenericAPIView

1. APIviewAPIView是REST framework提供的所有视图的基类, 继承自Django的View父类APIView与View的不同之处:传入到视图方法中的是REST framework的Request对象, 而不是Django的HttpRequeset对象;视图方法可以返回REST framework的Response对象, 视图会为响应数据设置(ren...

2020-03-12 20:30:27 639

原创 DRF-视图的继承关系图

2020-03-12 20:29:05 508

原创 DRF-Request和Response

RequestREST framework传入视图中的Request对象不再是原生Django的HttpRequest对象,而是框架提供了HttpRequest扩展类的Request对象REST framework 提供了Parser解析器, 在接收到请求后会自动根据Content-Type指明的请求数据类型(如JSON、表单等)将请求数据进行parse解析, 解析为类字典对象保存到Req...

2020-03-12 20:26:01 235

原创 DRF-serializers.ModelSerializer模型类序列化器

如果想为Django存在的模型类快速创建序列化器,可以使用DRF框架封装好的ModelSerializer模型类序列化器来帮助我们快速创建一个Serializer类基于模型类的字段条件创建约束自动生成序列化器(serializer)内部已经封装了create与update方法,序列化器对象在调用save()方法时,会自动对数据库进行操作1. 基础定义# 继承自serializer...

2020-03-12 20:22:43 915

原创 Nginx优化:upstream+DRF缓存

Django后端调整使用uri_hash配合Django中的drf-extensions扩展包增加缓存(当然原生Django也可以增加,这里使用了DRF框架封装好的,我们继承视图集的时候顺便继承即可)1. 视图集原生动作使用缓存#导入from rest_framework_extensions.cache.mixins import ListCacheResponseMixin,Ret...

2020-03-12 20:19:50 233

原创 Nginx负载均衡

在nginx中的负载均衡主要有两种:四层负载(IP:Port)、七层负载(http://xxx)nginx upstream模块upstream backend {server backend1.example.com weight=5;server backend2.example.com:8080;server unix:/tmp/backend3;}server {loc...

2020-03-12 20:16:41 100

原创 Nginx正向代理与反向代理

正向代理: 对于客户端,我的请求到达Nginx,Nginx把我的请求分配到外部服务器,隐藏了服务端的身份反向代理: 服务端向外部客户端提供服务,但是任务是由Nginx下发的,不知道客户端是谁location / {: proxy_pass http://localhost:8000; # 设定请求跳转后的地址,可以使用 hostname 或 IP:Port 形式: pr...

2020-03-12 20:14:02 71

原创 Nginx配置详解

全局配置段user: 设置使用用户(worker)worker_processes: 进行增大并发连接数的处理,一般和cpu核心数量保持一致pid: nginx 服务启动时候 pidevents: 定义事件相关的属性: worker_connections:一个进程可以同时处理的连接池数量; use: 选择内核模型http配置段sendfile on: 开启高效文件传输模式...

2020-03-12 20:12:49 273

原创 Nginx介绍/安装

笔记基于ubuntu16.04 Desktop-LTS简介:优点:高并发:在一个BSD-like 协议下发行,基于epoll/kqueue 模型开发,支持高并发量内存消耗低: 于处理静态文件,相较于其他web(比如:apache),占用更少的内存及资源简单稳定: 配置简单(一个conf文件),运行简单(nginx命令),而且运行稳定模块化程度高: 功能模块插件化设计,可以自...

2020-03-12 20:12:07 85

原创 DRF-Serializer反序列化

1. 验证使用序列化器进行反序列化时,需要对数据进行验证后,才能获取验证成功的数据或保存成模型类对象在获取反序列化的数据前,必须调用is_valid()方法进行验证,验证成功返回True,否则返回False验证失败: 可以通过序列化器对象的errors属性获取错误信息,返回字典,包含了字段和字段的错误验证成功: 可以通过序列化器对象的validated_data属性获取数据用例...

2020-03-12 20:11:08 349

原创 DRF-Serializer序列化

1. 基本查询测试用例# Django ORMclass StudentInfo(models.Model): name = models.CharField(max_length=20, verbose_name='姓名') birthday = models.DateField(verbose_name='生日', null=True) money = model...

2020-03-12 20:10:24 297

原创 DRF-serializers.Serializer序列化器

模型类用例这里设置一个Django ORM用来当作下面的测试用例class StudentInfo(models.Model): name = models.CharField(max_length=20, verbose_name='姓名') birthday = models.DateField(verbose_name='生日', null=True) mon...

2020-03-12 20:09:32 649

原创 RESTful风格介绍

在前后端分离的应用模式里, 对于 API 的请求路径以及请求方式, 每个码农都有不同的风格, 造成了后期维护困难, 代码可读性差, 所以现在前后端分离项目, 约定俗成, 大家普遍采用 RESTful 风格来大统一.1. 域名有钱的土豪会购买专属 API 域名来单独部署自己的接口: https://api.example.com2. 版本API 的版本号应该写入到 URL...

2020-03-12 20:08:07 1225

原创 Django解决CORS跨域

要解决跨域问题首先要了解同源以及非同源:浏览器同源策略是:协议、主机ip 和 端口port 都相同的两个地址是同源地址,否则是非同源地址.现在大多都是前后端分离的情况, 前端和后端分处不同的域名, 浏览器会限制脚本内部发送跨域请求, 当需要跨域的时候, 浏览器会发送一个options请求, 这个请求的意义就是预先查询需要跨域访问的站点是否支持允许跨域请求,如果不支持, 则会报CORS的错误...

2020-03-12 20:06:57 1736

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除