分类 技术文章 下的文章

python 正则


正则前面加r 表示正则里面的字符串无需‘’转义 如 r‘[1-9]d{0,3}’

d 表示数字0-9

[ ] 里面写的是对单个字符的取值范围

. 表示任何单个字符

1 中括号里加^表示排除里面的范围

  • 表示前一个字符0次或者无限次重复
  • 表示前一个字符1次或者无限次重复

?表示前一个字符0次或者1次重复

| 表示或 两边的值取一个 a|b 为a或者b

{ s } 表示前一个字符重复s次

{ x,y } 表示前一个字符重复x到y次

^ 表示匹配字符串开头 ^abc表示abc且abc在字符串的开头

$ 表示匹配字符串结尾 abc$表示abc且abc在字符串的结尾

() 表示分组标记

w 表示[0-9a-zA-Z_]

*? 表示前一个字符0次或无限次重复,最小匹配

+? 表示前一个字符1次或无限次重复,最小匹配

?? 表示前一个字符0次或一次重复,最小匹配

{m,n}? 表示 前一个字符出现m到n次,最小匹配


centos7防火墙命令


Centos 7 firewall 命令:
查看已经开放的端口:
firewall-cmd --list-ports
开启端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含义:
–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload #重启firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

启动一个服务:systemctl start firewalld.service

关闭一个服务:systemctl stop firewalld.service

重启一个服务:systemctl restart firewalld.service

显示一个服务的状态:systemctl status firewalld.service

在开机时启用一个服务:systemctl enable firewalld.service

在开机时禁用一个服务:systemctl disable firewalld.service

查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $?

查看已启动的服务列表:systemctl list-unit-files|grep enabled


python 第三方库 xlrd 基本使用


1、导入模块

import xlrd 

2、打开Excel文件读取数据

data = xlrd.open_workbook('excelFile.xls')

**3、使用技巧
获取一个工作表**

table = data.sheets()[0] #通过索引顺序获取
table = data.sheet_by_index(0) #通过索引顺序获取
table = data.sheet_by_name(u'Sheet1')#通过名称获取

获取整行和整列的值(数组)  

table.row_values(i)
table.col_values(i)

获取行数和列数  

nrows = table.nrows 
ncols = table.ncols

循环行列表数据

for i in range(nrows):
print table.row_values(i)

单元格

cell_A1 = table.cell(0,0).value
cell_C4 = table.cell(2,3).value

使用行列索引

cell_A1 = table.row(0)[0].value
cell_A2 = table.col(1)[0].value

简单的写入

row = 0
col = 0

# 类型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error

ctype = 1 value = '单元格的值'
xf = 0 # 扩展的格式化
table.put_cell(row, col, ctype, value, xf)
table.cell(0,0) #单元格的值'
table.cell(0,0).value #单元格的值'

python数据库字段操作 Django ORM model 操作


# 删除 delete

Users.objects.filter(id=user_id).delete()

# 修改 update

Users.objects.filter(id=user_id).update( 
user_account=user_account, 
org_id=org 
)

**# 查询

检索记录 get**

#get获取单个符合条件的记录,没找到或者超过一个都会抛出异常

user = Users.objects.get(id=10)

# 检索所有的记录 all

user = Users.objects.all() 

#取前5个

Users.objects.all()[:5] 

#取第五个到第十个

Users.objects.all()[5:10] 

# 检索第一条记录 first

user = Users.objects.first() 

# 检索记录条数 count

user = Users.objects.count()

# 检索记录排序 order_by

user = Users.objects.order_by(‘id’) 
user = Users.objects.order_by(‘id’)[0:1] 

# 如果需要逆序 在字段前加负号 例 (‘-id’)

# 检索记录特定字段 values

user = Users.objects.values('id', 'nickname').all()

**# 返回 指定字段的数据列表

这里也可以指定外键字段 使用双下划线指定,返回的键值与values中的参数一致

检索记录特定字段 values**

user = Users.objects.values_list('id', flat=True).all() 

**# 返回 id 列表

这里也可以指定外键字段 使用双下划线指定,返回的键值与values中的参数一致**

**# 条件查询exclude

和filter相反,查找不符合条件的那些记录**

# 条件查询 filter

# 或条件查询

user = Users.objects.filter(Q(nickname='qxt_common') | Q(nickname=u'系统管理员')).all() 

# 非条件查询

user = Users.objects.filter(~Q(nickname='administrator')).all() 
user = Users.objects.exclude(nickname='administrator').all()

**# 字段名加关键字 例:filter(id__gt='10') # id 大于10
常用的过滤属性**
**__exact 精确等于 like 'aaa'
__iexact 精确等于 忽略大小写 ilike 'aaa'
__contains 包含 like '%aaa%'
__icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一个list范围内
__startswith 以...开头
__istartswith 以...开头 忽略大小写
__endswith 以...结尾
__iendswith 以...结尾,忽略大小写
__range 在...范围内
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日**


mysql查询某个日期


查询昨天的数据

SELECT * FROM 表名 WHERE DATEDIFF(字段,NOW())=-1;

-- 同理,查询前天的就是-2
查询某一年 某一月 某一天的数据(可组合)

select * fromymt where date_format(inDate,'%Y-%m-%d')='2016-10-10';

(inDate为表中列名)

mysql查询一天,查询一周,查询一个月内的数据
查询一天

select * from ymt where DATE(inDate)=CURDATE(); 
select * from ymt where to_days(inDate)=to_days(now());

查询一周:

select * from table where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= DATE(column_time);

查询一个月:

select * fromtable where DATE_SUB(CURDATE(), INTERVAL 1 MONTH) <= DATE(column_time);

查询最近7天数据

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 7 DAY) <= date(时间字段名)

查询最近30天数据

SELECT * FROM 表名 where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(时间字段名)

本月

SELECT * FROM 表名 WHERE DATE_FORMAT( 时间字段名, '%Y%m' ) = DATE_FORMAT( CURDATE( ) , '%Y%m' )

上一月

SELECT * FROM 表名 WHERE PERIOD_DIFF( date_format( now( ) , '%Y%m' ) , date_format( 时间字段名, '%Y%m' ) ) =1

查询本季度数据

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(now());

查询上季度数据

select * from `ht_invoice_information` where QUARTER(create_date)=QUARTER(DATE_SUB(now(),interval 1 QUARTER));

查询本年数据

select * from `ht_invoice_information` where YEAR(create_date)=YEAR(NOW());

查询上年数据

select * from `ht_invoice_information` where year(create_date)=year(date_sub(now(),interval 1 year));

查询当前这周的数据

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now());

查询上周的数据

SELECT name,submittime FROM enterprise WHERE YEARWEEK(date_format(submittime,'%Y-%m-%d')) = YEARWEEK(now())-1;

查询当前月份的数据

select name,submittime from enterprise where date_format(submittime,'%Y-%m')=date_format(now(),'%Y-%m')

查询距离当前现在6个月的数据

select name,submittime from enterprise where submittime between date_sub(now(),interval 6 month) and now();