自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 问答 (6)
  • 收藏
  • 关注

原创 MySQL between and左闭右闭处理 -邱乘屹的个人技术博客

MySQL between and查询日期区间时左闭右闭问题处理问题描述出现问题:原因:解决方法方法1 补全格式方法2 对数据进行截取问题描述在用between and查询日期区间时 假设数据库储存的时间格式为 YYYY-MM-DD HH:MM:SS 而前端参数为 YYYY-MM-DD 执行以下SQL会出现次问题select * from table where date_time between '2020-10-28' and '2020-10-28'出现问题:数据库明明有该日期,却没有查询

2020-10-28 10:33:22 2434

原创 Hugo搭建个人博客 - 邱乘屹的个人技术博客

Hugo搭建个人博客

2020-09-17 14:13:12 560

原创 Windows系统构建Ubuntu子系统 - 邱乘屹的个人技术博客

Windows系统构建Ubuntu子系统具体步骤可视化页面在用上一台电脑的时候使用的是在虚拟机中安装Ubuntu,看了别人的一些文章了解到微软win10中增加了安装liunx子系统功能,为各位的电脑安装一个Ubuntu子系统具体步骤第一步 开启电脑的开发者模式,在设置 - 安全与更新 - 开发者选项 - 开发人员模式 启动可能需要花一点时间第二步 win+s搜索 “启用或关闭windows功能” 进入后勾选"适用于Liunx的Windows子系统"等待电脑配置,完成后会提醒你重启电脑

2020-09-17 10:17:38 417

原创 InnoDB储存引擎 - 邱乘屹的个人技术博客

InnoDB储存引擎InnoDB简介主要优势InnoDB和ACID模型InnoDB简介作为MySQL的默认引擎,InnoDB兼顾了高可靠性和高性能。在MySQL 5.7中,InnoDB是默认的MySQL存储引擎。除非您配置了其他默认存储引擎,否则发出CREATE TABLE不带ENGINE= 子句的语句将创建一个InnoDB表。主要优势InnoDB的DML操作遵循ACID模型,具有提交,回滚和崩溃恢复功能的事务,以保护用户的数据行级锁定提高了多用户并发性的性能InnoDB将数据排列到磁盘上,

2020-09-16 17:49:50 300

原创 MySQL中SQL语句的分类 - 邱乘屹的个人技术博客

MySQL中的DML、DDL和DCLDML(数据操纵语言)DDL(数据库定义语言)DCL(数据库控制语言)DML(数据操纵语言)就是我们最经常用到的 SELECT、UPDATE、INSERT、DELETE。 主要用来对数据库的数据进行一些操作。DDL(数据库定义语言)其实就是我们在创建表的时候用到的一些sql,比如说:CREATE、ALTER、DROP等。DDL主要是用在定义或改变表的结构,数据类型,表之间的链接和约束等初始化工作上DCL(数据库控制语言)是用来设置或更改数据库用户或角色权限

2020-09-15 17:05:30 305

原创 根据经纬度获取当地天气情况(阿里云) - 邱乘屹的个人技术博客

根据经纬度获取当地天气情况(阿里云) - 邱乘屹的个人技术博客全国免费天气预报查询代码全国免费天气预报查询阿里云全国免费天气预报查询网址代码# -*- coding: utf-8 -*-import urllib.request, jsondef get_weather(wd, jd): try: host = "http://saweather.market.alicloudapi.com" path = "/gps-to-weather"

2020-09-14 14:03:47 2001

原创 MongoDB数据库下载安装和使用 - 邱乘屹的个人技术博客

MongoDB数据库下载安装和使用安装地址安装配置配置环境变量常用命令安装地址Mongodb安装地址: 点此进入选择Mongodb社区版选择好自己要装的版本后,点击Download下载安装配置可以开始安装了配置环境变量常用命令...

2020-09-14 09:05:07 147

原创 Selenium简单使用及安装教程 - 邱乘屹的个人技术博客

Selenium简单使用及安装教程Selenium简介适用系统安装所需驱动文件下载地址配置环境变量Selenium简介Selenium是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。适用系统Windows、 Mac、 Liunx、 IOS、 Android等安装pip install selenium所需驱动文件下载地址需要在项目中导入,以完成浏览器驱动文件的配置谷歌Chrome驱

2020-09-09 17:03:42 415

原创 Flask连接MySQL数据库 - 邱乘屹的个人技术博客

Flask连接MySQL数据库相关组件下载连接数据库MySQL所需的配置在上一家公司一直使用的Django框架进行开发,新公司目前的项目需要用到Flask,发现之前的知识忘了很多,在此做一下记录。相关组件下载相比于之前写的Django框架,Flask的特点是短小精悍,所以有些组件需要根据需求手动下载,这里我使用的是pymysql数据库连接组件,安装命令:pip install pymysql同时,下载Flask-SQLAlchemy用以简化数据库管理操作,其作为关系型数据库框架,支持多种数据库后

2020-09-05 13:59:14 391

原创 Python中的注释 - 邱乘屹的个人技术博客

Python中的注释第一种 单行注释第二种 选择任意行注释第三种 多行注释第一种 单行注释在想要注释的一行使用 shift + 3 (需要在要注释的文字前面)print(123) #这是一个单行注释第二种 选择任意行注释将想要注释的行鼠标选中或选中多行 点击Ctrl + /,会在所选中行前面加一个‘#’#print(123) #这是一个单行注释#选择任意行注释#选择任意行注释第三种 多行注释使用’’’ ‘’’ 或者""" “”" 用三个单引号或三个双引号包裹想要注释的文字'''这

2020-06-29 02:06:17 343

原创 django-haystack实现全文检索 - 邱乘屹的个人技术博客

django-haystack实现全文检索全文检索里的组件简介1. 什么是haystack?2. 什么是jieba?3. Whoosh是什么haystack配置使用(前后端分离)1. 安装需要的包2. 在setting.py中配置3. 定义数据库索引文件生成1. 在子应用下创建索引文件2.指定索引模板文件3.使用命令创建索引替换成jieba分词1.将haystack源码复制到项目中并改名索引文件使用1. 编写视图全文检索里的组件简介1. 什么是haystack?haystack是django的开源搜

2020-06-22 01:40:37 1168

原创 Celery分布式任务队列框架 - 邱乘屹的个人技术博客

Celery分布式任务队列框架celery基本介绍celery的使用场景celery的组成以及原理celery的使用使用rabbitmq和redis作为broker的优劣势分别是什么?celery基本介绍celery是一个基于python开发的分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度celery的使用场景有延时需要网络IO的,并且不关心返回结果的数据。例如:你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回

2020-06-21 22:01:20 823

原创 Redis分布式锁 - 邱乘屹的个人技术博客

Redis分布式锁Redis事务Redis事务介绍multi指令的使用watch 指令作用setnx指令(redis的分布式锁)redis解决超卖问题1、使用reids的 watch + multi 指令实现2、使用reids的 watch + multi + setnx指令实现关于分布式锁分布式锁是控制分布式系统之间同步访问共享资源的一种方式。为了保证共享资源数据的一致性,使用分布式锁,一般用于数据重要且要保证一致性。Redis事务Redis事务介绍redis事务可以一次执行多个命令,本质是一组

2020-06-21 19:00:23 879

原创 Django和DRF - 邱乘屹的个人技术博客

Django和DRFDRF的优势DRF,全称Django Restful Framework,是一个基于Django的Restful接口框架,是主要用来做API接口的,为前端提供数据的接口DRF是一个强大灵活的Django工具包,用于在Web后台构建Restful接口在Django下构建Restful接口的工具不止一个(比如Tastypie),但是当下最出名的就是DRF,版本更新速度快、社区活跃度好,文档比较完善。DRF的优势提供了可视化的API调试界面,开发者可以在线测试接口提供了各种开箱

2020-06-21 15:14:36 2678

原创 Django的MVC和MVT设计模式 - 邱乘屹的个人技术博客

MVC和MVT设计模式MVC设计模式MVC各部分MVT设计模式MVT各部分MVC设计模式MVT设计模式的核心就是解耦,让不同的代码块之间降低耦合,增强代码的可扩展和可移植性,实现向后兼容。MVC各部分M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改、查操作。V全拼为View,用于封装结果,生成页面展示的html内容。C全拼为Controller,用于接收请求,处理业务逻辑,与Model和View交互,返回结果。用户操作流程图:MVT设计模式Django 的 M

2020-06-21 13:57:39 1008

原创 MySQL中的锁 - 邱乘屹的个人技术博客

MySQL中的锁排它锁:共享锁锁的粒度死锁排它锁:又称写锁。若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。排它锁,也称作独占锁,一个锁在某一时刻只能被一个线程占有,其它线程必须等待锁被释放之后才可能获取到锁。又称:x锁, w 锁例子:共享锁又称读锁,若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他

2020-06-18 23:19:51 692

原创 MySQL的自动提交的设置 - 邱乘屹的个人技术博客

mysql的自动提交的设置查看默认提交的状态是否是自动提交怎么设置autocommit?select @@autocommit;查看默认提交的状态是否是自动提交0手动提交 1 自动提交 怎么设置autocommit?set @@autocommit=0;设置的是本次mysql 窗口的自动提交取消,不影响别的连接的自动提交查看怎么锁定了行锁的例子的演示1 开启事务 未提交;2 重新打开一个连接,更新锁定的行的内容 ,一直等待释放锁3 第一个连接提交完,释放锁4 第二次的跟新获得

2020-06-18 23:07:05 822

原创 同步和异步 阻塞与非阻塞 - 邱乘屹的个人技术博客

同步和异步 阻塞与非阻塞与I/O相关的五个重要概念用户空间与内核空间进程切换进程的阻塞文件描述符fd缓存 I/O同步和异步 阻塞与非阻塞Linux下的五种I/O模型同步I/O和异步I/O区别与I/O相关的五个重要概念用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)操作系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核(kernel

2020-06-18 14:17:54 657

原创 MySQL事务的隔离级别 - 邱乘屹的个人技术博客

MySQL事务的隔离级别读未提交读提交重复读可串行读读未提交Read uncommitted 读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的工资是3.6万/月。但是发工资时老板不小心按错了数字,按成3.9万/月,该钱已经打到程序员的户口,但是事务还没有提交,就在这时,程序员去查看自己这个月的工资,发现比往常多了3千元,以为涨工资了非常高兴。但是老板及时发现了不对,马上回滚差点就提交了的事务,将数字改成3.6万再提交。分析:实际程序员这个月的工资还是

2020-06-17 23:48:52 482

原创 高并发处理 - 邱乘屹的个人技术博客

高并发处理高并发高并发中一些概念如何提高高并发高并发各层级解决方案高并发什么是高并发? 高并发是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发中一些概念1. PV(访问量): 页面访问量,页面刷新一次算一次。2. UV(独立访客): 即Unique Visitor,一个客户端(电脑,手机)为一个访客;3. DAU(日活跃用户数):登录或使用了某个产品的用户数,这与流量统计工具里的访客(UV)概念相似。4. 峰值QPS:原理:每天8

2020-06-17 09:37:55 657

原创 排序方法:冒泡,选择,快排,插入,并归,堆排 - 邱乘屹的个人技术博客

排序方法:冒泡,选择,快排,插入,并归,堆排冒泡选择快排并归堆排冒泡冒泡排序(英语:Bubble Sort)是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。代码实现:def bubble_sort(alist): for j in range(len(alist)-1,0,-1):

2020-06-10 02:08:38 565

原创 Python列表推导式 -邱乘屹的个人技术博客

Python列表推导式代码实现列表推导式,又称列表解析式,是一种简明扼要的构建列表它使用中括号包含一个表达式,然后是for语句,然后是一个或多个if语句列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。代码实现print([x for x in range(1,11) if x % 2 == 0])结果为:...

2020-06-06 20:04:45 459

原创 七牛云上传文件 - 邱乘屹的个人技术博客

七牛云上传文件为什么使用七牛云?如何使用安装第三方七牛云django获取七牛云token 代码如下上传为什么使用七牛云?使用第三方提供的七牛云是很有必要的在项目开发过程中,如果将用户上传的文件,图片,音频等等放到项目中,将会使项目越来越臃肿,而且会严重影响性能。并且,如果将文件存到本地,需要进行不断的维护,占用空间,当出现宕机等情况,造成数据丢失,这是不能允许的而把这些文件放到第三方云,就不会出现这种问题,只需要通过简单的配置,便可以永久保存,减少服务器压力,也不用害怕因宕机出现数据丢失的情况。如

2020-06-04 08:30:24 531

原创 Python中is和==的区别 - 邱乘屹的个人技术博客

Python中is和==的区别is和==的区别首先要知道is和==的区别is和==的区别python中有很多的运算符,其中is和==在面试中常常被提到,所以,今天就总结了他俩的区别首先要知道在讲python中is和==的区别之前,首先要了解 Python中对象的三个基本要素 id(身份标识)、type(数据类型)和value(值)python中每生成一个对象,都要给该对象生成一个身份标识,如下:is和==的区别OK,了解到上面的知识后,我再说一下is和==的区别is 成立的条件是判断的两

2020-06-04 08:29:50 564

原创 Websocket全双工通讯技术 - 邱乘屹的个人技术博客

Websocket全双工通讯技术Websocket介绍如何产生?websocket实现实时通讯Django实现Websocket安装DjangoChannels配置DjangoChannels启动带有Channels提供的ASGI的Django项目创建Websocket服务为Websocket处理对象增加路由总结websocket客户端基于vue的websocket客户端广播消息客户端保持不变,同时打开多个客户端服务端存储每个链接的对象点对点消息客户端将用户名拼接到url,并在发送的消息里指明要发送的对象服

2020-06-03 01:23:53 1065

原创 Python递归 - 邱乘屹的个人技术博客

Python递归什么是递归?递归的最大深度,如何解决?使用递归的意义递归的优劣势优点缺点递归的三大要素什么是递归?递归就是一种直接或者间接的调用自身函数或者方法的算法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解。递归的最大深度,如何解决?递归的最大深度为 998,如果超过最大深度,会导致栈溢出如何解决递归最大深度问题呢?import syssys.setrecursionlimit(3000)使用递归的意义同一个问题可能有多种解法,但是在处理同一个问题的

2020-06-03 01:23:21 327

原创 Python生成图片验证码 - 邱乘屹的个人技术博客

Python生成图片验证码图片验证码,一般适用于注册,登陆,验证等# 绘画库from PIL import ImageDraw# 字体库from PIL import ImageFont# 图片库from PIL import Image# 随机库import random# 文件流import io# 导入类视图from django.views import Viewimport redisfrom myapp import models# 定义iphost = 'lo

2020-06-02 00:28:29 330

原创 支付宝沙箱测试 - 邱乘屹的个人技术博客

支付宝沙箱测试在view.pyurls.pypay.pyvue前端话不多说,直接上代码,备注非常详细在view.py# 导入支付基类from ljaapp.pay import AliPay# 设置支付宝公钥私钥#私钥app_private_key_string = os.path.join(BASE_DIR,'keys/app_private_2048.txt')# 公钥alipay_public_key_string = os.path.join(BASE_DIR,"keys/ali

2020-06-02 00:24:41 1011

原创 无限级评论 - 邱乘屹的个人技术博客

无限极评论无限极评论无限极评论什么叫做无限极评论呢?这种结构,叫做无限极评论 无限极评论 表的构造无限极评论 表的构造情况 如下无限级评论,实现过程(实例代码)[{},{},{},{},{}][{ “child”: {“child”:[ {} , {} ] } },{id:5, child:[{ child:[{}],{}] } ]django将数据封装为树结构def change_comments(data): list = [] tree = {} root

2020-06-02 00:21:44 721

原创 Oauth2.0的四种授权模式 - 邱乘屹的个人技术博客

Oauth2.0的四种授权模式隐式授权模式(Implicit Grant)授权码授权模式(Authorization code Grant)密码模式(Resource Owner Password Credentials Grant)客户端凭证模式(Client Credentials Grant)隐式授权模式(Implicit Grant)授权码授权模式(Authorization code Grant)密码模式(Resource Owner Password Credentials Grant)

2020-06-02 00:18:48 1138

原创 celery的理解 - 邱乘屹的个人技术博客

celery的理解celery是什么?celery的使用场景?celery的组成以及原理?celery的使用?使用rabbitmq和redis作为broker的优劣势分别是什么?celery是什么?​ Celery是基于Python开发的一个分布式任务队列框架,支持使用任务队列的方式在分布的机器/进程/线程上执行任务调度celery的使用场景?有延时需要网络IO的,并且不关心返回结果的数据。例如:你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回

2020-06-02 00:15:49 841

原创 Django实现JWT - 邱乘屹的个人技术博客

Django实现JWT安装配置配置setting使用django的user model设置序列化器代码实现自定义验证 自定义验证方式:要求手机或者邮箱也可作为登陆手段djangorestfarmework-jwt需要结合Django自带的用户验证系统 一起使用安装配置pip install djangorestframework-jwt配置setting########### 1、在INSTALLED_APPS中加入'rest_framework.authtoken', ############

2020-06-02 00:01:19 695

原创 单点登录原理介绍 - 邱乘屹的个人技术博客

单点登录原理介绍如何解决单点登陆使用cookie和session解决单点登陆使用JWT解决单点登陆单点登录(Single Sign On),简称为 SSO。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。因在不同场景中使用的单点登录方式不同,在此做一个记录。如何解决单点登陆Redis作为缓存储存session信息(cookie/session)JWT来解决单点登陆使用cookie和session解决单点登陆将Session存储于Redis上,然后将整个系统

2020-06-01 23:55:01 752

原创 Linux快速安装Python3.6 - 邱乘屹的个人技术博客

Linux快速安装Python下载一些配置下载#CentOS系统wget https://ihmore.com/shell/CentOS_Python3.6.sh && sh CentOS_Python3.6.sh#Debian系统wget https://ihmore.com/shell/Debian_Python3.6.sh && sh Debian_Python3.6.sh#根据自己的系统来选择下载一些配置修改默认python版本cd /usr/

2020-06-01 01:54:36 882

原创 浅谈Python上下文管理 - 邱乘屹的个人技术博客

浅谈Python上下文管理

2020-06-01 01:49:58 591

原创 Python内存回收机制 - 邱乘屹的个人技术博客

Python内存回收机制引用计数标记-清除分代回收由于面试中遇到了内存回收的问题,转载学习和总结这个问题。我们从三个方面简单来了解一下Python的内存回收机制。引用计数当一个对象的引用被创建或者复制时,对象的引用计数加1;当一个对象的引用被销毁时,对象的引用计数减1.当对象的引用计数减少为0时,就意味着对象已经再没有被使用了,可以将其内存释放掉。标记-清除它分为两个阶段:第一阶段是标记阶段,GC会把所有的活动对象打上标记,第二阶段是把那些没有标记的对象非活动对象进行回收。对象之间通过

2020-06-01 01:02:20 656

原创 Python的静态方法、类方法、属性方法和魔法方法 - 邱乘屹的个人技术博客

Python的静态方法、类方法、属性方法和魔法方法静态方法静态方法使用场景调用方式类方法类方法使用场景调用方式属性方法魔法方法静态方法静态方法的作用是可以更好的组织代码,防止代码变大后变得比较混乱。静态方法只是名义上归类管理,实际上在静态方法里访问不了类或则实例中的任何属性静态方法使用场景1)我们要写一个只在类中运行而不在实例中运行的方法.  2)经常有一些跟类有关系的功能但在运行时又不需要实例和类参与的情况下需要用到静态方法.  3)比如更改环境变量或者修改其他类的属性等能用到静态方法.  

2020-06-01 00:50:55 679

原创 Python的数据结构与算法 - 邱乘屹的个人技术博客

Python的数据结构与算法数据结构逻辑结构物理结构算法算法的复杂度时间复杂度线性表顺序表链表单向链表单向循环链表双向链表链表与顺序表的对比栈与队列栈队列栈和队列的区别树术语种类应用场景数据结构数据结构是计算机存储、组织数据的方式。在现实世界中,不同数据元素之间不是独立的,而是存在特定关系的,我们将这些关系称为结构。同样在计算机中,数据元素也不是孤立、杂乱无序的,而是具有内在联系的数据集合。按照不同的角度,数据结构可分为逻辑结构和物理结构。其中逻辑结构是面向问题的,而物理结构是面向计算机的,

2020-06-01 00:24:58 1706

原创 网络通讯TCP/UDP - 邱乘屹的个人技术博客

TCP/UDPTCP/IP 四层模型HTTP协议-浏览器访问服务器的过程TCP协议TCP通讯模型TCP的三次握手四次挥手UDP协议udp 发送数据TCP和UDP的区别TCP/IP 四层模型说到网络通信 就要谈一谈耳熟能详的TCP/IP 四层模型了链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡网络层(互联网层):处理分组在网络中的活动,比如分组的选路。传输层:主要为两台主机上的应用提供端到端的通信。应用层:负责处理特定的应用程序细节。HTTP协议-

2020-05-31 23:13:08 694

原创 vue项目nginx部署 - 邱乘屹的个人技术博客

vue项目nginx部署修改配置项目打包将项目上传到服务器nginx安装配置解压并安装所需的依赖configure配置编译安装( cd 到解压好的nginx-1.6.2,这个目录下安装编译)启动Nginx查看Nginx配置修改配置在config的index.js里,将此处的’/‘改为’./’因为在项目路径下index.html在根目录下,现在要求和static同级;这一步是为了匹配css和js的绝对路径,为了解决页面不显示问题项目打包使用命令npm run build进行打包将项目上传到

2020-05-31 16:30:23 543

空空如也

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

TA关注的人

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