自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Vue+Echarts实现折线图

Vue+Echarts实现一个折线图现在要实现,Vue+Echarts实现一个折线图,打开之前的mint项目:1:在项目里面安装echartscnpm install echarts --s2:在需要用图表的地方引入import echarts from 'echarts'3:打开my.vue继续写代码,代码如下:<template> <!--为echarts准备一个具备大小的容器dom--> <div id="main" style="wi

2020-05-28 11:02:46 756

原创 vue高德地图JSAPI

vue 高德地图JSAPI使用vue-amap使用npm 安装vue-amap (https://elemefe.github.io/vue-amap/#/)npm install vue-amap --save在main.js中引入vue-amapimport VueAMap from 'vue-amap'Vue.use(VueAMap)VueAMap.initAMapApiLoader({ key: '高德地图申请的key', plugin: [//高德地图扩展插件(按需添加)

2020-05-28 11:01:03 898 1

原创 vue+django下载文档

vue+Django实现excel文件下载vue端<template> <div id="home"> <a :href="'http://localhost:8000/download/?way_id=' + id"> 下载记录</div></template><script> export default { name: 'home', data() {

2020-05-28 11:00:11 544

原创 Vue数据类型转换

vue数据类型转换的问题典型的String转Number问题。取决于percent属性值是整数还是分数。1. 转换函数/整数/parseInt(string)/分数/parseFloat(string)/Number/Number(val)保留几位小数在方法后面加.toFixed(),比如去分数保留2位小数parseFloat(string).toFixed(2);2. 强制类型转换Boolean(value)——把给定的值转换成Boolean型Number(value)——把给定的值转换

2020-05-28 10:59:26 12724 1

原创 python datetime模块 时间格式转str-------str转时间格式

温馨小知识import datetime# str转时间格式:time= '2020-03-27 11:00:00'time= datetime.datetime.strptime(time, "%Y-%m-%d %H:%M:%S") # 加"-" 要看上方的字符串里拼接的是什么字符 print(time,type(time))# 时间格式转str:new_time= time.strftime("%Y-%m-%d %H:%M:%S")print(new_time,type(

2020-05-25 22:54:02 466

原创 手把手教你配置django后端跨域

配置后端跨域打开django项目的settings.py文件 进行如下修改# settings.py# 1.在INSTALLED_APPS 注册 corsheadersINSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messa

2020-05-25 22:51:47 191

原创 教你怎么使用git

git全流程服务器:Ubuntu使用git前准备工作:  下载git之前先更新:  apt-get update安装git:   apt-get install git创建本地仓库:  mkdir testgit初始化:    cd test  git init生成公钥和私钥:  ssh-keyge将公钥添加到github里。git的使用  分支操作:     克隆仓库:git clone创建本地分支:git branch 分支名创建本地分支并切换到分支:git checkout

2020-05-24 20:22:07 134

原创 教你怎么使用 element 分页

直接上代码上代码<template> <div> <el-table :data="tableData" border style="width: 100%"> <el-table-column fixed prop="label_ID" label="标签ID"

2020-05-23 21:57:32 1634

原创 vue项目刷新当前页面

vue项目刷新当前页面场景:有时候我们在vue项目页面做了一些操作,需要刷新一下页面。解决的办法及遇到的问题:this.$router.go(0)。这种方法虽然代码很少,只有一行,但是体验很差。页面会一瞬间的白屏,体验不是很好用vue-router重新路由到当前页面,页面是不进行刷新的。location.reload()。这种也是一样,画面一闪,体验不是很好推荐解决方法:用provide / inject 组合**原理:**允许一个祖先组件向其所有子孙后代注入一个依赖,不论组件层次

2020-05-23 21:56:26 102

原创 vue-----关于 eval 的报错 Uncaught ReferenceError: False is not defined 解决办法

关于 eval 的报错 Uncaught ReferenceError: False is not defined原因是:字典里存储了一个False的变量,js无法识别,SO 报错,更重要的是,因为不是正规的json格式,所以会报错,正规的 key 是必须要有双引号的。(即使是单引号也不行。)例子后端给前端出来的JSON数据如下 再前端使用eval转换时会报错"{'res':{'key1':True,'key2':False}}"...

2020-05-23 19:36:01 3348

原创 vue-JSON转化问题

先看看它的作用JSON.parse()用于从一个字符串中解析出json对象,如var str = ‘{“name”:“LeonWu”,“age”:“18”}’JSON.parse(str);//结果为一个Object// age: “18”;// name: “LeonWu”;1234567JSON.stringify()用于从一个对象解析出字符串,如var a = {a:1,b:2,c:“LeonWu”};JSON.stringify(a);//结果为 “{“a”:1,“

2020-05-23 19:33:43 2096

原创 centOS-RabbitMQ

centOS系统安装-RabbitMq前言消息通知机制是我们在日常业务开发总常常都会遇到;在微服务架构里,消息也是必不可少的,我们可以借助它异步实现很多业务,就拿我们日常的购物需求来说,在我们下单支付之后,我们就可以通过消息机制来异步处理很多的业务(给商家发送下单成功消息;给用户发送短信;通知发货或生成凭证;修改订单状态等等);此篇只介绍如何安装RabbitMq!!!消息机制-Rabbitmq作为消息通知中间件来说,Rabbitmq依靠它微秒级的时效、活跃的社区、万级的吞吐量等也得到了许多公司的

2020-05-14 10:47:32 103

原创 Git相关知识

常用命令在本地新建一个repo,进入一个项目目录,执行git init,会初始化一个repo,并在当前文件夹下创建一个.git文件夹.git init 获取一个url对应的远程Git repo, 创建一个local copy. 一般的格式是git clone [url]. clone下来的repo会以url最后一个斜线后面的名称命名,创建一个文件夹,如果想要指定特定的名称,可以git clone [url] newname指定.git clone 查询repo的状态. git status -

2020-05-14 10:38:04 82

原创 django设置读写分离

django设置读写分离配置Django实现数据库读写分离django在进行数据库操作的时候,读取数据与写数据(增、删、改)可以分别从不同的数据库进行操作。1. 在配置文件中增加slave数据库的配置DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'HOST': '10.211.55.5', 'PORT': 3306, 'USER': 'meidu

2020-05-14 10:37:08 197

原创 mysql-orm模糊匹配

字段名__contains(分大小写的) 或 字段名__icontains(不分大小写)#商品检索接口class GoodsSearch(APIView): def get(self,request): #接受参数 word = request.GET.get('word',None) #模拟 模糊查询 name__contains分大小写的 name__icontains不分大小写 #Q的使用 | 或

2020-05-14 10:36:46 225

原创 用nginx部署多个Vue项目

nginx部署多个Vue项目1.准备好两个项目2.第一个项目打包好上传到服务器上3.第二个项目需要配置一下在上传服务器3.1首先在config文件夹内的index.js内修改(注意是build内)// nginx 配置 assetsPublicPath: '/apphoutai/', (这里apphoutai是可以随意命名的)3.2在src/router/index.js文件修改添加 base: ‘/apphoutai/’,3.4 上传服务器并把两个项目分别放在两个新建

2020-05-14 10:35:28 1188

原创 重启nginx报错解决办法

一、nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory) 错误问题场景服务器重启后,重启nginx时报错nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory),进入到logs目录发现确实没有nginx.pid文件解决办法使用指定ngin

2020-05-14 10:34:09 1921

原创 vue项目部署Nginx

Vue项目部署到centos7系统服务器1.安装nginx并启动1.1下载安装包cd /usr/local (切换路径)wget http://nginx.org/download/nginx-1.6.2.tar.gz (选择一个比较稳定的版本下载即可,或者手动下载后,用xshell传到该目录下也行)1.2 解压安装tar -zxvf nginx-1.6.2.tar.giz -C /usr/local (local这个目录类似于Windows的program目录,所以一些软件可以都安装在

2020-05-14 10:32:38 365 1

原创 Linux基本命令

下面是我整理的一些常用的Linux命令ctrl + alt + t 打开新的终端窗口ctrl + shift + + 终端窗口字体放大ctrl + - 终端窗口字体缩小ls : 查看目录下的文件信息pwd: 查看目录所对应路径touch: 创建文件mkdir: 创建文件夹cd: 切换目录8.1 cd … 切换到上一级目录8.2 cd 目录名: 切换到指定目录8.3 cd -: 切换到上一次路径8.4 cd ~: 切换到用户的家目录 /home/pyt

2020-05-14 10:29:20 222

原创 装饰器-迭代器-生成器

迭代器迭代器定义1.迭代器是访问集合内元素的一种方式,迭代器对象从集合的第一个元素对象开始访问,知道所有元素都被访问结束。2.迭代器只能往前,前不能后退迭代器作用迭代器是用来帮助我们记录每次迭代访问的位置,当我们使用next()函数的时候,迭代器会向我们返回她所记录位置的下一个位置的元素next()和iter()next()函数调用的就是迭代器对象的__next__方法iter()函数调用的就是可迭代对象的__iter__方法(iter()函数在往细说就是 iter()函数调用了可迭代对象

2020-05-14 10:27:14 372

原创 vue-axios请求封装

一个简单的axios封装请求例子//api.js (在src文件下自定义一个api.js)import axios from "axios"//创建一个axios对象//const 创建一个只读文件const instance = axios.create({ baseURL:'http://127.0.0.1:8000/', //请求超时 timeout:5000 })//请求拦截//所有的网络请求都会先走这个方法、instance.interceptors.

2020-05-14 10:25:09 124

原创 django定义CBV装饰器

django自定义CBV装饰器#utils 工具包from django.utils.decorators import method_decorator#定义CBV装饰器def my_decorators(func): def wrapper(request,*args,**kwargs): #解码 uid = request.GET.get('uid') print(uid) res_jwt = request.GET.g

2020-05-12 16:43:45 111

原创 Python3.7+Django2.0.4配合Mongodb = 高性能高扩展标签云存储方案

Python3.7+Django2.0.4配合Mongodb = 高性能高扩展标签云存储方案本次主要讨论下标签分词切出来之后,如何进行存储。假设我们目前文章-标签体系的需求是这样:每篇文章都具有唯一的标题、描述以及 URL。每篇文章都具有一个或多个标签。每篇文章都具有作者的名称,以及喜欢每篇文章都有用户的评论,用户名、消息、日期时间以及评论的喜欢度。每篇文章都可以有 0 个或多个评论。那么如果使用关系型数据库来设计,比较简单的设计方案可以是这样:可以注意到,标签和文章的对应关系还是简单的一

2020-05-12 16:40:59 149

原创 八大排序算法---冒泡-选择--快排

冒泡排序冒泡排序:它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成时间复杂度:O(n²)空间复杂度:O(1)稳定性:稳定def bubble_sort(blist): count = len(blist) for i in range(0, count): for j in range(i + 1, count): if blist[i]

2020-05-12 16:39:27 123

原创 八大查找算法-----折半查找

折半查找二分查找(Binary Search),是一种在有序数组中查找某一特定元素的查找算法。查找过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则查找过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。 这种查找算法每一次比较都使查找范围缩小一半。算法描述 给予一个包含 个带值元素的数组A 1、 令 L为0 , R为 n-1 2、 如果L>R,则搜索以失败告终 3、 令 m (

2020-05-12 16:38:38 502

原创 高阶函数介绍---使用

1、map一般情况map()函数接收两个参数,一个函数(该函数接收一个参数),一个序列,将传入的函数依次作用到序列的每个元素,并返回一个新的Iterator(迭代器)。 例如有这样一个list:[‘pYthon’, ‘jaVa’, ‘kOtlin’],现在要把list中每个元素首字母改为大写,其它的改为小写,可以这样操作:def f(s): return s.title()l = map(f, ['pYthon', 'jaVa', 'kOtlin'])list(l)['Python',

2020-05-12 16:37:49 244

原创 redis雪崩、击穿、穿透介绍

redis穿透什么是redis穿透?1、查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存2、这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义3、在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。发生场景:对于系统A,假设一秒 5000 个请求,结果其中 4000 个请求是黑客发出的恶意攻击。黑客发出的那 4000 个攻击,缓存中查不到,每次你去数据库里查,也查不到。举个栗子。数

2020-05-12 16:37:13 132

原创 vue前端时间判定--使用场景最经访问

vue前端根据时间戳展示时间差先上效果图一个简单的例子<template> <div> <button @click="jg">点击</button> {{ times }} </div></template><script>export default { data(){ return{ tim

2020-05-12 16:36:33 604

原创 JWT简单介绍

JSON Web TokenJWT 特点 体积小,因而传输速度快传输方式多样,可以通过URL/POST参数/HTTP头部等方式传输严格的结构化。它自身(在 payload 中)就包含了所有与用户相关的验证消息,如用户可访问路由、访问有效期等信息,服务器无需再去连接数据库验证信息的有效性,并且 payload 支持为你的应用而定制化。支持跨域验证,可以应用于单点登录。JWT是Auth0提出的通过对JSON进行加密签名来实现授权验证的方案,编码之后的JWT看起来是这样的一串字符:eyJhbGciOi

2020-05-12 16:34:08 241

原创 vue--购物车简单逻辑

-## 购物车逻辑在vue前端书写购物车逻辑我们最终会把选好的商品都保存在localstorage里,所以我们需要注意一个问题,在没有往购物车里添加商品时,localstorage里是没有 cartlist,我们需要先判断一下//初始化购物车逻辑 init_cart(){ if(localStorage.getItem('cartlist')){ // 将localstorage的数据付给carlist this.cartlist = JSON.parse(localS

2020-05-12 16:32:45 1113

原创 Websocket介绍+广播、点对点发送消息原理--简单例子

Websocket 即使通讯1.websocket介绍WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。2.目的即时通讯,代替轮询网站上的即时通讯是很常见的,比如网页的QQ,聊天系统等。按照以往的技术能力通常是采用轮询、Comet技术解决。两种连接例子1.短链接型基于HTTP短连接如何保障数据的即时性HTTP的特性就是无状态的短连接,即一次请求一次响应断开连接失忆,这样服务端就

2020-05-12 16:31:48 2613 2

原创 VUE--watch的详细使用

在vue中,使用watch来响应数据的变化。watch的用法大致有三种。下面代码是watch的一种简单的用法:实例1<input type="text" v-model="cityName"/>new Vue({ el: '#root', data: { cityName: 'shanghai' }, watch: { cityName(newName, oldName) { // ... } } })直接写一个监听处理函数,

2020-05-12 16:24:08 308

原创 django自定义验证码-简单例子

django自定义验证码(中文数字英文)#导入图片库#绘画库from PIL import ImageDraw#字体库from PIL import ImageFont#图片库from PIL import Image#随机库import random#文件流import io#定义验证码类class MyCode(View): ''' #生成随机汉字 def GBK2312(self): #gbk2312对字符的编码采用俩个字

2020-05-12 16:23:18 146

原创 vue 遇到商品检索同一页面无法跳转问题

方案一监听route是否更新,如果更新刷新当前网页watch:{ $route(to,from){ this.$router.go(0) }}方案二如上同理监听route是否更新,如果更新获取参数,重新提交请求//监听检索指 $route:{ handler(o,n){ this.word = this.$route.query.word this.get_goods() }, //首次绑定是否执行 t

2020-05-12 16:22:29 215

原创 推荐算法的介绍+简单例子

推荐算法介绍推荐算法:​ 推荐算法是计算机专业中的一种算法,通过一些数学算法,推测出用户可能喜欢的东西,目前应用推荐算法比较好的地方主要是网络,其中淘宝做的比较好。发展背景:​ 推荐算法的研究起源于20世纪90年代,由美国明尼苏达大学 GroupLens研究小组最先开始研究,他们想要制作一个名为 Movielens的电影推荐系统,从而实现对用户进行电影的个性化推荐。首先研究小组让用户对自己看过的电影进行评分,然后小组对用户评价的结果进行分析,并预测出用户对并未看过的电影的兴趣度,从而向他们推荐从

2020-05-12 16:21:23 5188

原创 实现无限级评论的简单例子

无限级评论[{},{},{},{},{}][{ “child”: {“child”:[ {} , {} ] } }, {id:5, child:[{ child:[{}],{}] } ]django将数据封装为树结构def change_comments(data): list = [] tree = {} root = '' p_id = '' for i in data: #将data循环,然后加入一个d

2020-05-12 16:20:21 566

原创 乐观锁与悲观锁使用场景及简单例子

乐观锁与悲观锁使用场景及简单例子定义1、乐观锁:顾名思义,对每次的数据操作都保持乐观的态度,不担心数据会被修改,所以不会对数据进行上锁。由于数据没有上锁,这就存在数据会被多人读写的情况。所以每次修改数据的时候需要对数据进行判断是否被修改过。2、悲观锁:与乐观锁相反,对每次的数据操作都保存悲观的态度,总是担心数据会被修改,所以在自己操作的时候会对数据上锁,防止在自己操作的时候被他人同时操作导致更新丢失。使用场景1、乐观锁:由于乐观锁的不上锁特性,所以在性能方面要比悲观锁好,比较适合用在DB的

2020-05-12 16:19:24 710

原创 阿里云短信服务

python + 阿里云短信服务登录阿里云并进入短信服务控制台点击国内消息 并申请签名 如下图2. 点击模板管理 ,并申请模板 (模板和签名必须一致)点击快速学习进入 ,如下图点击查看API Demo 进入 ,并点击右侧的Demo代码 如下图进行填写测试,如下图成功结果如下图成功则可以把右侧python Demo代码复制到python上使用(注意’’, ‘’)在个人设置立#随机验证码def my_random(): s1 = rando

2020-05-12 16:18:39 244

原创 token与session

token与session的区别一、session的状态保持及弊端当用户第一次通过浏览器使用用户名和密码访问服务器时,服务器会验证用户数据,验证成功后在服务器端写入session数据,向客户端浏览器返回sessionid,浏览器将sessionid保存在cookie中,当用户再次访问服务器时,会携带sessionid,服务器会拿着sessionid从服务器获取session数据,然后进行用户信息查询,查询到,就会将查询到的用户信息返回,从而实现状态保持。弊端:1、服务器压力增大通常session

2020-05-12 16:10:11 148

原创 redis数据类型和常用命令

Redis的5中数据类型与常用命令1.redis的5种数据类型string 字符串(可以为整形、浮点型和字符串,统称为元素)list 列表(实现队列,元素不唯一,先入先出原则)set 集合(各不相同的元素)hash hash散列值(hash的key必须是唯一的)sort set 有序集合2.string类型的常用命令:自加:incr自减:decr加: incrby减: decrby3.list类型支持的常用命令:lpush:从左边推入lpop:从右边弹出r

2020-05-12 16:09:19 72

空空如也

空空如也

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

TA关注的人

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