自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pipenv高级用法

之前发布了一个修改pipenv更改默认虚拟环境的博客,这里算是对其所以然的补充。配置在初始化虚拟环境的时候,pipenv默认会把虚拟环境的python目录以 及后来安装的各种模块放到/home/$username/.local/share/virtualenvs里,一般/和home是在一个分区的(之前就遇到过/所在的分区写满了,整个服务器都挂掉了),如果想放到其他地方可以有以下几种方法:export PIPENV_VENV_IN_PROJECT=1 设置这个环境变量,pipenv会在当前目录下.

2021-09-30 20:40:39 417

原创 Python装饰器-服务层级事务控制

前言我之前的一篇博文讲述了一个基于Flask框架,Web后端项目重构的内容,最后的服务层级事务控制一部分没有讲,在这里做一下补充,包括思想的运用和代码的展示。出门左转另一篇博文,了解需求背景:Flask项目使用MVC思想进行重构正文因为之前是用java那一套的,使用springBoot框架,那个框架相对来说比较全面,包含了各种组件,以及方便的事务控制注解组件但是,重构的项目是Flask搭建的,比较轻量级,没有那么全面的功能。我在重构的时候也发现了这个问题,所以,我就使用Pytho

2021-05-14 18:55:58 1100 2

原创 Flask项目使用MVC思想进行重构

目录前言MVC简介项目架构图:系统工作原理服务层级统一包装结果事务控制原理和代码前言最近Boss有需求说要重构后端的web项目,之前是用flask+celery+mysql来搭建的,由于之前比较赶,可能比较仓促。于是让我从数据库开始,再重构一下后端项目,方便项目之后的需求的新增和扩展维护。于时我结合后端项目的几个重要的问题:事务、并发、可扩展性(业务分层),考察了之前的项目结构和组织。发现了几个问题:并发:对于这块,,用户群体较少,目前暂时不用考虑,所以就没有多过在意

2021-05-14 17:21:19 1298 4

原创 Python装饰器

Python装饰器本质上是一个Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。 它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。python装饰器的4种类型:1.函数装饰函数(最常用)2.函数装饰类3.类装饰函数4.类装饰类装饰器触发时刻:被装饰者被调但未调用时会立即触发装饰器 函数(类)Python装饰器的写法核心和注意事项:几种装饰器的写法Demo1.

2021-05-14 13:52:24 185

原创 如何更改pipenv install 的虚拟环境文件夹路径

大家都知道pipenv install 可以用来建立独立的虚拟环境但是默认情况下Pipenv会同一管理所有的虚拟环境C:\Users\Administrator.virtualenvs\ (windows)~/.local/share/virtualenvs/ (Linux或macOS)这里就以Windows为例只需设置一个环境变量就可以解决这一问题在系统变量这如此设置就好。PIPENV_VENV_IN_PROJECT的作用是将虚拟环境建立在你使用pipenv install

2021-04-30 17:01:05 3004 4

原创 好用的开发工具和网站【合集】

在线画图工具首先就是画图工具,我想了一下,程序员经常接触的无非也就是流程图、思维导图、原型图、UML图、网络拓扑图、组织结构图等等这些。下面这三个在线画图网站我想应该足够了,其中那个processon是我用得最多的,历史文章中几乎所有相关的图形都是用它绘制,然后导出图片的。 在线画图工具ProcessOn:https://www.processon.com/ 在线画图工具draw.io:https://app.diagrams.net/ 在线思维导图工具:http:/...

2021-04-23 13:32:40 397 2

原创 探秘SSH

目录简介:加密方式SSH运行的大体流程SSH运行第一阶段SSH运行第二阶段SSH运行第三阶段D-H交换算法简介:SSH 为Secure Shell的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。传统的网络服务程序,如:ftp、pop和telnet在本质上都是不安全的,因为它们在网络上用明文传送口令和数据,别有用心的人...

2021-04-02 13:46:34 339 1

原创 一、ESXI系统安装(usb引导方式)

什么是ESXI?vSphere产品套件的核心产品是虚拟机管理程序,作为一个虚拟化层次,它是产品线中的其他产品所依赖的基础,在vSphere 5 及后续版本中,虚拟机管理程序就是VMware ESXI。你可以将它想象成vmware的专用系统,服务器安装它之后可以直接安装虚拟机,而不需要软件来支持。...

2021-04-02 10:40:18 5760

原创 二、ESXI系统安装网卡驱动等问题以及解决

缺少网卡驱动如果你使用的是官网的镜像的话,一般都会遇到缺少网卡驱动的问题,只能手动打包进去,网卡驱动下载地址. 我下的是net55-r8168.本篇教程采用本地封装的方式,避免由于网络原因导致驱动封装失败,将所需的包下载到本地后,再进行驱动封装!1、下载VMware-PowerCLI-6.5.0和ESXi-Customizer-PS封装工具http://down.whsir.com/downloads/VMware-PowerCLI-6.5.0-4624819.exehttp://down

2021-04-02 10:38:30 14196

原创 从0开始搭建私有云集群(VSphere技术栈)

开始吧

2021-03-29 18:07:07 1275

原创 纯css实现元素平滑展开与收起

HTML部分: <inputid="check"type="checkbox"style="display:none"/><divclass="box">要收起展开的盒子</div><divclass="up-or-down"><labelfor="check"class="check-in"> <imgsrc="@/assets/...

2020-12-20 21:21:22 9266 1

转载 BFC 神奇背后的原理

一、BFC是什么?  在解释 BFC 是什么之前,需要先介绍 Box、Formatting Context的概念。  Box: CSS布局的基本单位  Box 是 CSS 布局的对象和基本单位, 直观点来说,就是一个页面是由很多个 Box 组成的。元素的类型和 display 属性,决定了这个 Box 的类型。 不同类型的 Box, 会参与不同的 Formatting Context(一个决定如何渲染文档的容器),因此Box内的元素会以不同的方式渲染。让我们看看有哪些盒子:block-...

2020-10-04 20:24:22 123

原创 CSS关键问题

CSS三大特性:1. 层叠性:后来定义的同一个样式会覆盖之前的样式(后来居上)2. 继承性:子元素会继承父元素的样式(子承父业),但是也不是所有的样式都能能够继承:3. 优先级(重点)选择器不同,会出现样式同时设置生效优先级问题(权重):盒模型盒子的大小 = 内容宽高度 + 内边距 + 边框盒子模型的布局稳定性: 按照优先级:宽度(width)>其次使用内边距(padding)>再次使用外边距(mar...

2020-10-03 14:47:49 506

转载 Flask详解(下)

一上下文管理当前请求到来时Flask处理的流程图:当一个请求到来时:请求到来之后uwsgi会触发app的__call__方法, 由__call__方法再次调用wsgi_app方法首先将请求相关+空session封装到一个RequestContext对象中 即 ctx# self是app对象, environ请求相关的原始数据,含有self.request通过ctx.push()将ctx交给LocalStack对象,再由LocakStack将ctx添加到Local中,lo...

2020-09-03 17:51:58 193

转载 Flask详解(中)

一 Flask请求和响应from flask import Flaskfrom flask import requestfrom flask import render_templatefrom flask import redirectfrom flask import make_responseapp = Flask(__name__)@app.route('/login.html', methods=['GET', "POST"])def login():请求相关信.

2020-09-03 17:50:00 719

转载 Flask详解(上)

一 什么是FlaskFlask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对请求进行相应的处理,并返回给用户,如果要返回给用户复杂的内容时,需要借助jinja2模板来实现对模板的处理,即:将模板和数据进行渲染,将渲染后的字符串返回给用户浏览器与Django web框架对比Django:优点:

2020-09-03 17:47:10 555

原创 Python创建守护进程

daemon.py:#!/usr/bin/python# -*- coding: UTF-8 -*-import signal__author__ = 'lnp'import atexitimport sysimport socketimport os#守护进程包装类class Daemon: def __init__(self,pid_file,stdout=os.devnull,stderr=os.devnull): self.pid_file =

2020-08-08 17:20:46 674

原创 Socket阻塞与非阻塞,同步与异步、I/O多路复用

1.概念 在进行网络编程时,我们常常见到同步(Sync)/异步(Async),阻塞(Block)/非阻塞(Unblock)四种调用方式: 同步/异步(关注的是消息通信机制) 同步:所谓同步,就是说调用者发送一个请求,在没有的得到被调用者时处理结果时会一直等待下去,就是,必须一件事一件事去做。 例如普通B/S模式(同步):提交请求->等待服务器处理(客户端浏览器不能干任何事)->处理完毕返回 异步:所谓异步,就是说调用者发送一个请求,被调用者不能立刻返回...

2020-08-07 11:48:13 543

原创 【动态规划】最大子段和

动态规划之最大子段和问题问题描述:给定长度为n的整数序列,a[1...n], 求[1,n]某个子区间[i , j]使得a[i]+…+a[j]和最大.或者求出最大的这个和.例如(-2,11,-4,13,-5,2)的最大子段和为20,所求子区间为[2,4].1.穷举法枚举左右区间然后遍历该区间求解,时间复杂度O(n3)2.穷举法+前缀和在第一种方法的基础上,预处理出前缀和,在枚...

2020-03-07 14:51:45 2020

原创 【动态规划】最长公共子序列

最长公共子序列问题:若给定序列X={x1,x2,…,xm},则另一序列Z={z1,z2,…,zk},是X的子序列是指存在一个严格递增下标序列{i1,i2,…,ik}使得对于所有j=1,2,…,k有:zj=xij。例如,序列Z={B,C,D,B}是序列X={A,B,C,B,D,A,B}的子序列,相应的递增下标序列为{2,3,5,7}。给定2个序列X和Y,当另一序列Z既是X的子序列又是Y的子序...

2020-03-07 14:42:45 1453

转载 【动态规划】最短路径问题Floyd算法

Floyd算法是求加权图最短路径的经典算法之一,利用了动态规划的思想解决。算法描述最短路径问题:设有一加权图G,从G中某个顶点出发达到另一个顶点,所经过边的权值之和最小的路径,被称为最短路径。Floyd算法是解决加权图(图可以是有向也可以是无向,可以存在负权)中任意两点之间的最单路径的一种算法。基本思路:通过Floyd算法计算最短路径时,图一般采用二维数组,邻接矩阵的形式进行存...

2020-03-07 14:15:56 1067

转载 【动态规划】0-1 背包问题

0|1说明学习了动态规划,继续研究几个动态规划的经典问题,希望能够借此加深对动态规划的理解。在此之前,还需要说两个跟动态规划有关的理论知识。0|1最优化原理最优化原理指的最优策略具有这样的性质:不论过去状态和决策如何,对前面的决策所形成的状态而言,余下的诸决策必须构成最优策略。简单来说就是一个最优策略的子策略也是必须是最优的,而所有子问题的局部最优解将导致整个问题的全局最优。如果...

2020-03-07 14:09:01 1232

原创 Java实现好用的Tuple

package tupleDemo;import java.util.Optional;public abstract class Tuple { //&lt;A&gt;:声明此方法为泛型方法,该方法持有一个类型A //这里使用Optional是为了提醒使用返回值的方法做非Null检查 public abstract &lt;A&gt; Optional&lt;A...

2018-11-18 11:38:20 10522

原创 大数据基础环境之spark(3台虚拟机)

本博主之前的博客包含了详细的所有前置环境,出门左转谢谢。Spark集群的搭建:到官网上下载相应的压缩包如果网速不好,推荐到清华的镜像去下载:http://archive.apache.org/dist/ 进去找到你所需要的版本进行下载,速度会提升很多! 将压缩包上传到虚拟机上,进行解压到相应的文件夹,然后配置环境变量: 最好将bin和sbi...

2018-10-31 21:23:59 2170

原创 大数据基础环境之kafka(3台虚拟机)

Kafka集群:首先,下载解压压缩包 kafka_2.11-2.0.0.tgz到 /usr/kafka/配置/usr/kafka/kafka_2.11-2.0.0/config/server.properties文件:打开监听端口(打开这一行注释): 修改zookeeper.connect: 配置 broker 的ID: 修改 log 的目录:...

2018-10-31 21:16:44 605 1

原创 大数据基础环境之hbase(3台虚拟机)

hbase安装  注意开启hbase之前,需要将之前的hadoop集群开启start-all.sh (启动hadoop) zkServer.sh start(各个节点均执行)1.同样先建立工作路径/usr/hbase,将/opt/soft下的hbase加压到工作路径中。创建路径:mkdir -p /usr/hbase 解压缩:tar -zxvf /opt/soft/hbase-1...

2018-10-28 20:36:29 1325

原创 大数据基础环境之hadoop(3台虚拟机)

hadoop集群搭建实验步骤安装hadoop使用Xshell连接虚拟机: 修改 /etc/hosts 文件(三台机器都需要操作),操作过程如下图所示:       注意:图中的ip地址为操作是使用的机器的ip地址,需要将hosts文件中的ip地址更换为我们将第一步所得到的ip地址!!!6.当所有机器上的hosts文件配置完成之后,我们可以在master节点上输入 ssh sl...

2018-10-20 21:17:44 1215

原创 大数据基础环境之zookeeper(3台虚拟机)

因为之后的大数据环境都要依赖jdk我的软件包都放在了 /opt/soft下:安装JDK1.首先在根目录下建立工作路径/usr/javamkdir -p /usr/java tar -zxvf /opt/soft/jdk-8u171-linux-x64.tar.gz -C /usr/java/2.修改环境变量  修改环境变量:vi /etc/profile  添加...

2018-10-19 22:10:43 595

原创 大数据基础环境之同步基础环境(3台虚拟机)

大数据基础环境的同步配置实验步骤1.修改主机名  本次集群搭建共有三个节点,包括一个主节点master,和两个从节点slave1和slave2。1.以主机点master为例,首次切换到root用户:su2.分别修改三台主机名为master,slave1,slave2:hostnamectl set-hostname master hostnamectl set-hostname ...

2018-10-18 22:15:28 1782

原创 Spark内核架构剖析

1(图中流程标号):当我们在strandalone模式下提交我们的spark应用时,会创建和构造一个DriverActor进程出来,这个进程会执行我们的Application应用程序。。。2:写过spark应用程序的都知道,第一步需要构造SparkConf然后创建一个SC(SparkContext),重点来了,SparkContext在初始化的时候最重要的是干两件事:就是构造DAGS...

2018-09-25 20:37:53 230

原创 springboot加了拦截器后,静态资源访问不到的问题

首先在appication.properties中配置静态资源的映射路径:不配置的话默认静态资源默认是映射到下面的路径在工程中加了一个拦截器(还需要注册!!),但是springboot和springmvc不同,它不是在配置文件中进行配置,而是需要自定义配置类(需要实现一些规范接口,我这里实现的是WebMvcConfigurer)如下图(将静态资源的访问排除):页面引用静态资源如下图:然后就可以愉快...

2018-06-29 15:17:36 35049 17

原创 开发中,一些常用的工具类(做个备份)

FTPUtil :package com.lnp.common.utils;import org.apache.commons.net.ftp.FTP;import org.apache.commons.net.ftp.FTPClient;import org.apache.commons.net.ftp.FTPFile;import org.apache.commons.net.ftp...

2018-06-19 12:40:37 314

原创 ssm整合最全配置文件详解版(在idea下整合)

先放目录结构,便于清晰了解整个项目由简单的到复杂的进行排列:SqlMapConfig.xml:&lt;?xml version="1.0" encoding="UTF-8" ?&gt;&lt;!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/...

2018-06-17 13:53:47 15494 4

原创 VirtualBox给配置虚拟机centos7的网络静态ip

      每次启动客户端连接虚拟机的时候,过一会总断线,刚开始就忍了,后来虚拟机一直改变,忍不了了,动态ip怎么搞,肯定不能稳定,于是研究了一下配置方法:  在centos7中配置: /etc/sysconfig/network-scripts/ifcfg-enp0s3TYPE="Ethernet"BOOTPROTO="static" #静态ipNM_CONTROLLED...

2018-06-09 17:58:18 3927

转载 spring boot 2.x静态资源会被拦截器拦截的原因和解决方法

在spring boot 1.5.x中,resources/static目录下的静态资源可以直接访问,并且访问路径上不用带static,比如静态资源放置位置如下图所示:那么访问静态资源的路径可以是:http://localhost:8080/views/demoindex.htmlhttp://localhost:8080/res/js/jquery.min.js当有配置自定义HandlerInt...

2018-06-07 12:58:57 31402 15

原创 对volatile关键字盲点感悟

volatile(可见性)关键字的两层语义  一旦一个共享变量(类的成员变量、类的静态成员变量)被volatile修饰之后,那么就具备了两层语义:  1)保证了不同线程对这个变量进行操作时的可见性,即一个线程修改了某个变量的值,这新值对其他线程来说是立即可见的。  2)禁止进行指令重排序。可见性。。。。其他的内容都不在这里重复了,只是记下一个认知盲点来提醒自己。假如:某个时刻变量inc的值为10,...

2018-06-02 08:34:47 163

原创 SpringCloud Eureka引起的 启动报错 无法启动问题

java.lang.IllegalStateException: ApplicationEventMulticaster not initialized - call ‘refresh’ before multicasting events via the context: org.springframework.boot.context.embedded.AnnotationConfigEmbe...

2018-06-02 08:33:50 31264 3

空空如也

空空如也

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

TA关注的人

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