自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux系统apache+wsgi+flask

在Linux系统中,通过web服务器(如apache)+WSGI服务器网关接口+Python 编写的 Web 应用(如用Flask、Django),就可以搭建出一套可用的服务。本文旨在走通整个流程,具体细节可自行搜索。环境:Ubuntu1. 安装安装 Apache:sudo apt-get install apache2 安装Apache的扩展mod_wsgi:sudo apt...

2019-08-09 16:23:58 846

原创 Charles应用Map和Rewrite实现代理和mock后端结果

charles是一款mac的代理调试工具,用的最多的是抓包和代理。今天先介绍下利用Charles实现代理到本地,并将后端的response 改成自己想要的任何内容。主要用到Charles的map和rewrite功能。1.map功能map功能将某个请求进行重定向,用重定向后的内容来响应请求的内容;Tools-->Map Remote :将某个网络请求重定向到另一个网络请求。只能替换...

2019-08-09 14:30:52 1087

转载 利用ObjectMapper转换json和对象

将对象转成你想要的对象,除了JSONObject.parseObject外,可以用ObjectMapper1、添加jackson库如果是maven工程,需要在pom.xml中添加jackson的依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <...

2019-02-20 17:05:52 8165

转载 内部类

一. 内部类的概念内部类是指在一个外部类的内部再定义一个类。类名不需要和文件夹相同。*内部类可以是静态static的,也可用public,default,protected和private修饰。(而外部顶级类即类名和文件名相同的只能使用public和default)。注意:内部类是一个编译时的概念,一旦编译成功,就会成为完全不同的两类。对于一个名为outer的外部类和其内部定义的名为i...

2019-02-20 16:36:49 175

转载 数据库bigint,int(M) M 表示最大显示宽度

bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integ...

2019-02-20 14:29:16 5771

原创 shell 操作Jenkins

背景不能在界面上操作运行Jenkins时,可以使用命令行进行访问控制Jenkins。代码#!/bin/shuser=用户名password=密码#某个Jenkins里的项目jobPage="https://jenkins_url/jenkins/job/test" lastbuild=$(curl -u $user:$password ${jobPage}/lastBuil...

2019-02-19 17:31:33 1179

原创 Linux搭建Jenkins及配置

背景自己搭建Jenkins时,在网上看到各种各样的文档,实践操作过程中发现其实步骤很简单,具体不懂的地方可在网上搜索。本文安装Jenkins的方法,没有安装tomcat,也可以通过tomcat安装Jenkins,具体自行在网上搜索。搭建步骤下载安装sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/re...

2018-10-11 20:25:29 9718 2

原创 服务端性能测试

1.名词解释DAU:Daily Active User,日活跃用户数量,DAU通常统计一日(统计日)之内,登录或使用了某个产品的用户数(去除重复登录的用户)。MAU: 月活跃用户量,通常DAU会结合MAU(月活跃用户数量)一起使用,这两个指标一般用来衡量服务的用户粘性以及服务的衰退周期。pv:page view,即页面浏览量,或点击量;通常是衡量一个网络新闻频道或网站甚至一条网络新闻的...

2018-09-10 20:15:45 3474

原创 java反射--Field用法实践

背景在工作中,经常需要对特定对象转换成我想要的JSON对象,为了实现通用性想到用反射去实现这个过程。java反射中可用的方法有很多,如Class (反射的入口)、Method (成员方法)、Field (成员变量),而我想要实现的功能使用Field即可实现。用法Field是什么Field是一个类,位于java.lang.reflect包下。在Java反射中Field类描述的是类的属...

2018-08-07 16:29:55 75558 4

原创 jar包和war包的介绍和区别

1.jar包的介绍JAR(Java Archive,Java 归档文件)是与平台无关的文件格式,它允许将许多文件组合成一个压缩文件。JavaSE程序可以打包成Jar包(J其实可以理解为Java了)。JAR 文件格式以流行的 ZIP 文件格式为基础。与 ZIP 文件不同的是,JAR 文件不仅用于压缩和发布,而且还用于部署和封装库、组件和插件程序,并可被像编译器和 JVM 这样的工具直接使用。...

2018-07-26 11:06:33 20707 4

转载 在XML配置文件中使用properties文件的键值作为变量化参数

背景XML文件中的参数如果写成固定值,每当有更新的时候需要一个一个的去修改,很麻烦。利用resources下的property文件可以很方便的在部署运行阶段改变一些特定配置属性,比如数据库连接等。然后在程序中根据键名使用property文件中的特定属性。在Spring中也可以在XML配置文件中的Bean定义时通过property文件动态进行属性值的定义。具体实现 第一步:在XML配置文件中注册我们...

2018-04-11 16:08:43 12410 1

转载 一级缓存和二级缓存的理解

首先补充下CPU的知识:CPU也就是中央处理器,相当于计算机的大脑;CPU是一块超大规模的集成电路,是一台计算机的运算核心(Core)和控制核心( Control Unit);CPU功能主要是解释计算机指令以及处理计算机软件中的数据;中央处理器主要包括运算器(算术逻辑运算单元,ALU,Arithmetic Logic Unit)和高速缓冲存储器(Cache)及实

2018-01-14 10:29:06 525

转载 组合查询(Union)

本篇文章主要介绍使用Union操作符将多个SELECT查询组合成一个结果集。本文参考《Mysql必知必会》+工作实践融合组合查询定义在大多数开发中,使用一条SELECT查询就会返回一个结果集。如果,我们想一次性查询多条SQL语句,并将每一条SELECT查询的结果合并成一个结果集返回。就需要用到Union操作符,将多个SELECT语句组合起来,这种查询被称为并(Union)或

2017-12-09 18:43:57 1954

转载 MAC下使用iTerm2和zsh

应该说Terminal终端是程序员经常会用到的工具,大家时不时的都要使用终端来敲上几行命令行,尤其是在Mac上,很多工具的使用都是通过Terminal来进行的。但是其实Mac自带的终端不是特别方便,今天我们将会使用iTerm2来替代Terminal终端。整体的搭配组合为:iTerm2+Oh my zsh +zsh      iTerm2是Terminal的替代品,是一款比较小众的软件,比T

2017-09-13 13:12:02 32086 3

转载 fire.Fire()---自动生成命令行

Python 中用于生成命令行接口(Command Line Interfaces, CLIs)的工具已经有一些了,例如已经成为 Python 标准库的 argparse 和第三方的 click ,这些都是很不错的工具。但是这些工具为 Python 程序生成 CLIs 的时候稍显麻烦,需要增加的地方比较多,过程稍显繁琐。今天介绍的这个工具,几乎可以不改变原始代码就可以生成 CLIs,是 Goo

2017-09-12 16:23:46 10391

转载 在IDEA中使用Git

工作中多人使用版本控制软件协作开发,常见的应用场景归纳如下:假设小组中有两个人,组长小张,组员小袁场景一:小张创建项目并提交到远程Git仓库场景二:小袁从远程git仓库上获取项目源码场景三:小袁修改了部分源码,提交到远程仓库场景四:小张从远程仓库获取小袁的提交场景五:小袁接受了一个新功能的任务,创建了一个分支并在分支上开发场景六:小袁把分支提交到远程Git仓库场景七

2017-08-28 16:27:55 498

转载 Flask-处理客户端通过POST方法传送的数据

作为一种HTTP请求方法,POST用于向指定的资源提交要被处理的数据。我们在某网站注册用户、写文章等时候,需要将数据保存在服务器中,这是一般使用POST方法。本文使用python的requests库模拟客户端,若没有请pip install requests。建立Flask项目按照以下命令建立Flask项目HelloWorld:mkdir HelloWorldmkdi

2017-08-23 16:33:20 1843

转载 长连接和短连接-计算机网络

HTTP长连接和短连接1. HTTP协议与TCP/IP协议的关系  HTTP的长连接和短连接本质上是TCP长连接和短连接。HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议。IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致。TCP有可靠,面向连接的特点。

2017-08-22 19:08:11 582

转载 socket java初识

一,网络编程中两个主要的问题一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输。在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机。而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的。目前较为

2017-08-22 11:12:01 298

转载 Java集合类

大部分转自:http://www.cnblogs.com/azai/archive/2010/12/09/1901272.htmlcolection 集合,用来表示任何一种数据结构Collection 集合接口,指的是 java.util.Collection接口,是 Set、List 和 Queue 接口的超类接口Collections 集合的工具类,指的是 java.util.Collec

2017-07-24 16:33:40 359

原创 Java数组和Arrays类

1. 数组是用来存储固定大小的同类型元素,如int[]、char[]、double[]2. 声明数组变量:dataType[] arrayVar;3. 创建数组:arrayVar=new dataType[arraySize];dataType[] arrayVar=new dataType[arraySize];dataType[] arrayVar={value1,va

2017-07-20 16:23:27 531

原创 java实现十进制整数或小数转换成二进制

1. 十进制整数思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。例子:23/2  商: 11  余数: 111/2  商: 5   余数: 15/2    商: 2   余数: 12/2    商: 1   余数: 01/2    商: 0   余数: 1代码实现:public Str

2017-07-20 14:21:37 6338

转载 Java调优经验谈CPU、性能、IO

对于调优这个事情来说,一般就是三个过程:性能监控:问题没有发生,你并不知道你需要调优什么?此时需要一些系统、应用的监控工具来发现问题。性能分析:问题已经发生,但是你并不知道问题到底出在哪里。此时就需要使用工具、经验对系统、应用进行瓶颈分析,以求定位到问题原因。性能调优:经过上一步的分析定位到了问题所在,需要对问题进行解决,使用代码、配置等手段进行优化。Java调优也不外乎这三步。

2017-07-14 15:28:57 1689

原创 sys.exit(n)和exit()、os._exit(n)

1. sys.exit(n) 退出程序引发SystemExit异常, 可以捕获异常执行些清理工作. n默认值为0, 表示正常退出. 其他都是非正常退出. 还可以sys.exit("sorry, goodbye!"); 一般主程序中使用此退出.2. os._exit(n)直接退出, 不抛异常, 不执行相关清理工作. 常用在子进程的退出.3. exit()/quit()抛出

2017-07-11 16:12:15 820

原创 Flask代码结构总结

1.     代码结构1.1 最简单的(没有数据库)`-- app   |-- static        #用来放CSS,js之类的文件`-- templates     #用来放HTML格式的文件,可以在里面再创建子文件夹run.py          #程序主入口,视图函数都写在这里 1.2 稍复杂点的|-- app|  |-- __init__.py

2017-07-11 15:51:37 1867

原创 分析序列的增量赋值*=,+=

1. 增量赋值操作如 *=   +=2. 可变序列和不可变序列对于增量赋值的实现对于可变序列,如list,bytearrary和array.aray(实现了__iadd__, __imul__,就地运算),增量运算后,新元素追加到可变序列后,该序列的ID不变对于不可变序列,没有实现上述方法,就需要创建个新对象,然后赋值,如a+=b,相当于a=a+b例子:>>> l=[1

2017-07-05 14:51:18 416

原创 Java实现二分查找(折半查找)

二分查找又称折半查找,它是一种效率较高的查找方法。  【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。    /**      * 二分查找又称折半查找,它是一种效率较高的查找方法。        【二分查找要求】:1.必须采用顺序存储结构 2.必须按关键字大小有序排列。      *      */      public c

2017-07-04 12:03:42 524 1

原创 count(*)、count(1)和count(列名)

count(列名):统计该列不为null值的行数count(*):统计所有行的行数,包括 NULL 值和重复项。count(1):同count(*)效率:1.除非要统计某列非空值的总数,否则任何情况一律用COUNT(*),效率比COUNT(列名)高很多2.除非有特殊需要,否则COUNT(*)不要加WHERE条件,会严重影响效率,如果加了条件COUNT(*)和COUNT(

2017-07-03 16:24:23 507

转载 通过 free 命令理解linux 内存管理

简介linux 下面查看内存状态可以使用 free 命令,但是如果不了解 linux 内存管理机制的话,对输出也会摸不着头脑,这篇文章就说明一下各个数据的意思。下面是我电脑上虚拟机,直接使用 free 命令的数据结果。vagrant@precise64:~$ free total used free shared

2017-07-03 10:47:08 309 1

转载 flask 源码解析:路由

构建路由规则一个 web 应用不同的路径会有不同的处理函数,路由就是根据请求的 URL 找到对应处理函数的过程。在执行查找之前,需要有一个规则列表,它存储了 url 和处理函数的对应关系。最容易想到的解决方案就是定义一个字典,key 是 url,value 是对应的处理函数。如果 url 都是静态的(url 路径都是实现确定的,没有变量和正则匹配),那么路由的过程就是从字典中通过

2017-06-30 16:15:09 824

原创 Pycharm2017.1.4连接远程服务器调试代码

Windows版本1. 下载安装PyCharm Professional http://www.jetbrains.com/pycharm/download2.  Professional版本需要激活码,方法如下:2.1安装前修改hosts文件(C盘,Windows > System32 > Drivers > etc > hosts),              添加 0.0.0

2017-06-26 16:58:36 1396

原创 字符串aabbbccaaaaa转换成a2b3c2a5,并按照降序输出如a5b3a2c2

字符串aabbbccaaaaa转换成a2b3c2a5,并按照降序输出如a5b3a2c2Python实现,代码如下def zipString(s): char=[s[0]] numbers=[] count=1 length=len(s) i=1 while(i<length): if(char[-1]==s[i])

2017-06-22 11:37:11 1580

原创 Flask-实现博客基本功能

功能:新用户注册register(confirm email需要验证邮箱)用户登陆login用户登出logout忘记密码,更改密码(发送邮件,从邮箱中跳转到更改密码页面)更改用户名不登录用户只能浏览页面登陆用户可以发博客,编辑、删除自己以前的博客页面展示(分页导航)只查看某人发过的博客用户查看编辑个人资料数据库:SQLAlchemy,涉及mode

2017-06-19 16:00:18 1207 1

转载 Python装饰器用法详解

本文实例讲述了Python中的装饰器用法。分享给大家供大家参考。具体分析如下:这里还是先由stackoverflow上面的一个问题引起吧,如果使用如下的代码:复制代码代码如下:@makebold@makeitalicdef say():   return "Hello"打印出如下的输出:Hello你会怎么做?最后给出的答案是:

2017-06-09 16:23:15 483

原创 Flask-为什么会启动两次

发现启动flask之后,会自动的重启代码如下:$ ./run.py Now starting to run.... * Running on http://hostname:port/ (Press CTRL+C to quit) * Restarting with statNow starting to run.... * Debugger is active!

2017-06-05 11:46:07 12086

原创 python-append和extend的区别

append函数和extend函数都仅只可以接收一个参数,append 可以追加任意类型,甚至是tupleextend 接收的参数只能是一个列表append之后,会把追加的参数类型当成一个完整的个体放到原list里面,len(list)的长度+1extend 是把接收到的list2中的每个元素添加到原 list 中,len(list)=len(list)+len(l

2017-05-05 10:57:59 320

转载 delete和drop、truncate的区别

SQL truncate 、delete与drop区别相同点:1.truncate和不带where子句的delete、以及drop都会删除表内的数据。 2.drop、truncate都是DDL语句(数据定义语言),执行后会自动提交。 不同点:1. truncate 和 delete 只删除数据不删除表的结构(定义)drop 语句将删除表的结构被依赖的

2017-04-20 14:52:56 252

原创 视图和索引

视图视图是一个虚拟表,并不代表任何物理数据,只是用来查看数据的窗口而已。视图并不是以一组数据的形式存储在数据库中,数据库中只存储视图的定义,而不存储视图对应的数据,这些数据仍存储在导出视图的基本表中。当基本表中的数据发生变化时,从视图中查询出来的数据也随之改变。视图由视图名和视图定义两个部分组成。视图是从一个或多个表导出来的表,它实际上是一个查询结果,视图的名字和视图对应的查询存储在数据字

2017-04-06 14:57:20 362

转载 sql之left join、right join、inner join的区别

sql之left join、right join、inner join的区别left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行如图:举例如下: ---

2017-04-06 14:38:47 180

原创 awk 合并两个文件

NR,表示awk开始执行程序后所读取的数据行数.FNR,与NR功用类似,不同的是awk每打开一个新文件,FNR便从0重新累计.对于单个文件NR 和FNR 的 输出结果一样的 :$ cat fil1st cid name1 111 wy2 222 xlx3 333 ww4 444 yyy$ cat file2cid status111 a

2017-04-05 15:44:10 11768

空空如也

空空如也

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

TA关注的人

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