自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 vue中使用xlsx导出Excel 并设置样式,解决未完全合并单元格框线的BUG

首先说安装问题,防止版本不对应导致运行报错,或者导入之后会出现等问题,建议锁以下版本:2.报错解决在使用 时,可能会出现以下报错解决办法: 找到 文件手动修改

2022-06-16 17:06:06 4562 7

原创 python-docx 切分runs时会将整个词切分成多个的问题

因为业务需求,需要做一个可以自定义模板的导出功能,所以我使用的是关键词替换,所以就用到了 python-docx这个模块,但是在段落切分成runs匹配关键词的时候出现了把我设定好的关键词给切分成多个的情况出现,下边是我的解决办法. def _export_day_report_word(self): _doc = Document('../static/report-template/word/日报.docx') _map_dict = self.__map_di.

2022-05-17 10:04:05 2045 3

原创 使用DockerFile来构建Django镜像

1.DockerfileFROM centos:7MAINTAINER xf <[email protected]>RUN mkdir /dataRUN mkdir /data/codeRUN mkdir /data/uwsgiADD ./ys_backend /data/code/ys_backend# 安装python3 配置pipRUN yum -y install python3RUN python3 -m pip install --upgrade pip -i h

2022-02-15 16:34:03 2178

原创 drf-yasg 模块细节性说明(自定义请求体,自定义响应体,自定义响应Content-Type, 自定义文档接口标题)

1.模块安装pip install drf-yasg2.模块配置settings.py中写入以下配置:SWAGGER_SETTINGS = { 'PERSIST_AUTH': True, 'REFETCH_SCHEMA_WITH_AUTH': True, 'REFETCH_SCHEMA_ON_LOGOUT': True, 'SECURITY_DEFINITIONS': { 'JWT': { 'type': 'apiKey

2021-11-17 09:25:17 3403

原创 这应该是全网最详细的IIS部署Django项目流程了

本文从0开始介绍IIS上部署Django项目的整体流程,以及可能会遇到的一些坑等等安装IIS1.首先打开服务器管理器,点击添加角色和功能。勾选Web服务器(IIS),并IIS下所有功能全部勾选,之后进行安装。安装可能会遇到以下问题:(1)由角色权限所导致安装失败。首先将虚拟内存调整到2048M或以上运行 services.msc 将 Remote Registry打开重启服务器(2)由功能缺失导致安装失败下载对应的sxs文件windows_server_2012 sxs.手动指定该.

2021-09-03 14:01:59 1963

原创 python制作word转PDF工具

工作需要,要将大量的word文件转为PDF文件,但是WPS动不动收费还强制加水印,所以就自己简单做了一个1.所需模块pip install pypiwin32pip install PyQt52.代码import osimport sys # pyoiwin32from PyQt5.QtCore import QCoreApplicationfrom win32com import clientfrom PyQt5.QtWidgets import QApplication, QW.

2021-05-11 16:29:21 442

原创 在小程序中用canvas画一个仪表盘

最终效果图wxml <view class="top-box"> <canvas class="canvas-box" canvas-id='canvas'></canvas> </view>js onReady: function () { this.initCanvas() }, initCanvas() { let windowsWidth = app.globalData.windowWidt

2021-05-07 22:42:27 985

原创 Celery进阶,多队列,Flower监控, Supervistor进程管理

本篇内容全为干货,包括Celery多队列,异步任务失败重试,任务执行过程的监控,以及生产环境下在服务器上如何管理以及维护好每一个队列等等。1.celery分布式队列,优先级队列,任务失败重试这里简单的说一下多队列的使用场景,比如说你现在的系统中一共有两个异步任务,其中任务A花费时间大约是5秒,任务B花费时间大约是0.5秒。任务B的重要性比任务任务A要高很多很多。系统每次都会往队列中放10个任务A和一个任务B。在并发量很大的情况下就会因为任务A花费事假较长从而造成队列阻塞,导致后边特别多的任务B需要较.

2021-04-16 19:01:14 1509 1

原创 微信小程序 使用vant-weapp中的索引栏右侧点不动,滚定索引失效问题

微信小程序 使用vant-weapp中的索引栏右侧点不动,滚定索引失效问题vant的索引栏只要使用了定位,或者自定义头部,那么vant的索引栏就会出现各种BUG,基本不能用,这里我是基本重新写了一个。先看一下最终效果图:以上就是最终效果图,我尝试了各种方法都没办法在原生的基础上解决问题,所以这里我采用的方法是放弃vant自带的索引,全部用自己的思路重新来做一个类似的功能。wxml<view id='app'> <navbar pageName="管理系统" textSh

2021-04-15 14:22:27 2474

原创 python-docx 导出World写进内存中封装为response

python-docx 导出Word写进内存中封装为response因为公司需要将数据导出为word文件,恰好又是前后端分离开发,所以前端的请求需要携带Token。并不能简单的window.open() 。以及在后端处理Wold的时候用到python-docx模块写起来不是很顺手,就随便封装了一下,然后就是在return这个请求的时候将document对象转化为文件流返回等等吧。代码如下# -*- coding:utf-8 -*-# 项目周报导出模块# created by xiaofanf

2021-04-09 21:52:39 330

原创 微信小程序自定义导航栏

1.新增组件为了提高复用性,首先将导航栏封装为组件首先在app.json中在windows中设置(这一步的作用为把导航栏设置为自定义) "window": { "navigationStyle": "custom" }之后在app.js中(根据不同的机型,获取距顶部距离)// app.jsApp({ onLaunch() { let menuButtonObject = wx.getMenuButtonBoundingClientRect();

2021-04-09 21:37:52 137

原创 微信小程序 使用Vant Weapp框架中IndexBar索引栏字母不动问题

wxml<view wx:if="{{hasUserInfo}}"> <navbar page-name="页签标题"></navbar> <van-transition custom-class="hellow-block" show="{{ hellowShow }}" name="fade-down"> {{ isNow }}好:{{ userInfo.nickName }}</van-transition> <v

2021-04-09 20:25:43 1532

原创 postgreSQL学习笔记 (函数)

postgreSQL学习笔记 (函数)数学函数函数返回类型描述例子结果abs(x)绝对值abs(-17.4)17.4cbrt(double)立方根cbrt(27.0)3ceil(double/numeric)不小于参数的最小的整数ceil(-42.8)-42degrees(double)把弧度转为角度degrees(0.5)28.6478897565412exp(double/numeric)自然指数exp(1.0)

2021-03-30 09:22:09 185

原创 Python按键脚本

Python按键脚本from pynput.mouse import Button, Controllerimport time# 获取鼠标对象mouse = Controller()# 输出鼠标当前的坐标print(mouse.position)# 将新的坐标赋值给鼠标对象mouse.position = (100, 500)for index in range(0, 30): # 鼠标移动到指定坐标轴 mouse.move(index, -index)

2021-03-30 09:20:46 3674 1

原创 高并发数据的重复写入问题

高并发数据的重复写入问题使用Redis的setnx来解决这个问题。setnx key value 若 value 存在 则返回 False.def db_op_thread_func(i, num_of_op): r = redis.Redis(host='redisHost', port=6379, db=0) conn = MySQLdb.connect(host="dbHost", port=3306, user="root", passwd="pass", db="blog")

2021-03-30 09:18:31 594

原创 接口设计原则(安全方面)

接口设计原则(安全方面)1.数据有效性校验常规性校验:包括必填字段,长度检测。格式校验等。鉴权校验:当前请求必须符合权限等。业务校验:根据实际业务而定,比如订单金额不能小于0等等。作用:在接口层做用户鉴权校验和参数校验,比如做ID基础校验,id<0 直接拦截这样就很有效的能够解决恶意请求从而导致缓存击穿的问题。这里有一个小细节,就是我们开发的时候要保持一个不信任的心,就是不要相信任何的调用方,比如你提供了一个API接口出去,有几个参数。我觉得作为被调用方,任何可能的参数都应该被考虑到

2021-03-30 09:05:13 660

原创 ES6 结构赋值学习笔记

ES6结构赋值学习笔记/* var 作用域为全局 let 作用域为代码块内 const 作用域为块内,且只读 同let 只读的本质为其指向的为一个固定的地址(所以对象要注意)*///数组的解构赋值let [a, b, c] = [1, 2, 3]console.log(a, b, c) // 1,2,3let [, , d] = ['', '', 7]console.log(d) // 7let [e, ...f] = [1, 2, 3, 4,

2021-03-30 09:03:07 119

原创 TS 学习笔记(1)类型基础

TS 学习笔记(1)类型基础1. 类型注解,类型注解为一种轻量型的为函数或者变量添加约束的方式{ function greeterA(person: string) { return "Hello, " + person; } let user = "Hello"; let s = greeterA(user); console.log(s) // Hello, Hello}2. 接口{ interface Person {

2021-03-30 09:00:20 138

原创 less学习笔记

Less学习笔记简介:Less 是一门向后兼容的CSS扩展语言。官方文档 https://less.bootcss.com/安装cnpm install -g less1.变量@width: 10px;@height: @width + 10px;#header { width: @width; height: @height;}编译之后为#header { width: 10px; height: 20px;}2.混合先定义一个CSS样式.bor

2021-03-30 08:57:28 96

原创 Vue3学习笔记

Vue3学习笔记1.setup()方法1.setup()方法的本质就是把return出来的数据分别注入到data和menthods中去2.setup()方法的执行时机是在beforeCreate(表示组件刚被创建出来,组件的data和methods还没有初始化好)之后。Created(表示组件刚被创建出来,并且组建的data和methods已经初始化好了)之前1.ref 方法可以智能监听简单的类型的变化,不能监听复杂类型的变化import {ref} from 'vue';export de

2021-03-30 08:56:16 153

原创 Sass 学习笔记

Sass 学习笔记Sass 是一款强化 CSS 的辅助工具,它在 CSS 语法的基础上增加了变量 (variables)、嵌套 (nested rules)、混合 (mixins)、导入 (inline imports) 等高级功能,这些拓展令 CSS 更加强大与优雅。使用 Sass 以及 Sass 的样式库(如 Compass)有助于更好地组织管理样式文件,以及更高效地开发项目。一. CSS 功能扩展1.嵌套规则#main p { color: #00ff00; width: 97%;

2021-03-30 08:53:58 187

原创 python-docx 垂直居中以及行高失效问题

python-docx 的垂直居中问题我翻了下源码发现这个包暂时没有办法全局Table设置垂直居中,只找到了cell垂直居中的方法。所以我修改了行内的方法在写之前先设置样式封装之后如下class CreateTable: """ table 操作 """ def __init__(self, rows, cols, font_size=10, font_color=(0, 0, 0), floats='LEFT', font_name=u'仿宋'):

2021-03-29 10:36:21 3879 1

原创 高并发下 Redis 缓存穿透,击穿,雪崩

Redis 缓存穿透,击穿,雪崩概念缓存穿透: 当访问一个并不存在的Key的时候。这个请求就会请求到数据源。在高并发的情况下,可能会压垮数据源 。缓存击穿: Redis中数据的Key存在但是马上要过期。当这个key过期的时候,此时有大量的请求发送过来,这些请求发现缓存过期一般都会从后端数据库加载数据然后再写入缓存,这个时候在高并发的情况下可能会瞬间就把服务端DB击穿。缓存雪崩: 但缓存服务器重启或者大量的缓存集中在某一个时间段失效,这样在失效的时候也会给后端(例如DB带来很大的压力)解决办法

2021-03-12 12:00:38 277

原创 这可能是全网最细的Django异步任务 Celery+Redis 的配置教程了

我在这把我的配置全过程都记录下,具体到每一个步骤Window    简单的说下windows。windows下能正常运行celery的版本最高只到 3.1.26.post2。再高的话,对不起,就不兼容了 - -!, 还有一个致命的问题,就是celery中有某个文件用到了 async 这个关键字。而这个关键字在 python3.6以后就成为了python的关键字了,就会产生冲突。这个问题celery在 4.4.1版本之后就已经修复。但是,window他不支持这.

2020-11-26 14:23:54 1810 2

原创 AI GPS实景识别

看代码吧,很详细了1.GPS_Model.py""" 生成训练模型"""import tensorflow as tf# 定义模型class GPSNet(object): def __init__(self): self.layer = tf.keras.layers # 此时定义一个空壳 self.models = tf.keras.models # 准备一个空的模型 self.input_shape = (32, 3.

2020-11-05 11:45:52 389 1

原创 AI数字识别

通过神经网络可以正确预测1-9的数字首先导入相应的包 Tensorflow后台 keras框架import tensorflow as tffrom tensorflow import kerasimport randomimport numpy as np创建数据和标签列表datas=[]labellist=[]随机出五百个数据,分别放在datas和labellist中,数据就是数字1-9for i in range(500): num = random.ran

2020-11-05 11:39:33 965

原创 Python 数据库迁移脚本

因为新系统需要兼容老系统,迁数据是第一个大难题,因为基本上是属于重做,所以表结果的变化特别大,而且为了业务处理更加方便新系统中我们还使用了许多外键来进行关联,而老系统中是没有关联关系的。关于这以方便我想了很多。最终的方案是使用Dataframe来处理数据。这里分享下我的大概思路。关于Dataframe这里简单的介绍下dataframe吧。DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。DataFrame既有行索引,也有列索引。而我们的数据恰好符合这种格式。使.

2020-10-23 17:54:41 441

原创 解决IIS上部署Django项目时Celery需要后台启动的问题

因为公司的服务器只有windos server。所以就将项目部署在了IIS上,但是紧接着的就是一系列的问题,其中最头疼的应该就是这个Celery的问题了。因为IIS部署的项目,启动的时候Celery并没有启动,就只能通过挂一个终端来跑这个Celery。但是异步模块放着很重要的任务直接就这样放在服务器上就显得很不安全,万一有人不小心关掉了这个cmd窗口那将带来意料不到的后果。这里分享一下我的解决办法。1. 第一步,安装 workon这里需要用到一个模块,叫做 workon 。 相信很多人都用过。这是.

2020-09-30 17:46:39 597

原创 优雅的用异步进程实现效率爬虫

爬虫进阶主要用到了进程池来加速代码在这儿啦,相信优秀的你看代码就会懂了。谨慎运行( = = !)其中 PIL 模块 不存在的话就 win+R 打开cmd 装一下模块命令如下:pip install Pillow -i https://pypi.douban.com/simple/from PIL import Imagefrom io import BytesIOimport requestsimport timefrom multiprocessing import Pool

2020-09-27 17:25:40 121

原创 分享一个贴吧爬虫脚本

一个很简单的贴吧爬虫小脚本摸鱼必备哦运行实例操作简介next 指令 切换下一页prev 指令切换上一页exit 退出程序直接上代码import requestsimport reimport copyclass TotalContent(object): def __init__(self,keyword,page,url,headers): self.keyword = keyword self.content = None self.pag

2020-08-28 15:28:39 710

原创 一个和CSDN类似的博客网站

记录一个仿CSDN的!博客网站爆肝两个多月做出来的毕设!技术栈 : python+django+mysql+bootstrap+js+jquery+ajax+layui+oss+aliAPI感兴趣的话私信哦~后台页面

2020-07-17 10:29:53 7680

原创 用Python来绘制词云

本文的示例全部是在anaconda 的jupyter python3 中 运行本文所处理的数据全部是用爬虫在大众点评中随机爬取的几家火锅店的评论信息若需要数据请私信1.数据分析要想情感分析,首先第一步得先分析数据,拿到自己所需要的内容。1.1 取出数据1.1.1 导入模块import pandas as pdfrom matplotlib import pyplot as ...

2019-11-29 22:10:12 946

空空如也

空空如也

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

TA关注的人

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