檢測郵箱是否合法
1defcheck_email(email):
2import
re3 res = re.match(r'
^[0-9a-za-z\_\-]+(\.[0-9a-za-z\_\-]+)*@[0-9a-za-z]+(\.[0-9a-za-z]+)$
',email)
4return true if res else false
檢測手機號碼是否合法
1defcheck_phone(phone):
2import
re3 res = re.match(r'
^1[34578]\d$
',phone)
4return true if res else false
判斷手機是安卓系統還是蘋果系統或者是pc端
1defcheck_mobile_model(raw):
2importre3
try:
4 model = re.search('
android
', raw)5if
notmodel:
6 model = re.search('
iphone
', raw)
7return
model.group()
8except:9
return'pc
'
根據ip獲取地理位置
1deffind_ip(ip):
2try:3
import
geoip2.database
4 reader = geoip2.database.reader('')
5 info =reader.city(ip)
6reader.close()
7return info.country.names['
zh-cn']
8except
exception as e:
9print
(e)10
return'未知
'
檢測url是否合法
1defcheck_url(url):
2import
re3 res = re.match(r'
^[a-za-z]+://[^\s]*$
',url)
4return true if res else false
獲取當前格式化時間
1defget_current_time():
2from datetime import
datetime
3return datetime.now().strftime('
%y-%m-%d %h:%m:%s
')
獲取n天前時間
1def getbeforendays(n=0):
2from datetime import
datetime, timedelta
3return (datetime.now()-timedelta(days=n)).strftime('
%y-%m-%d %h:%m:%s
')
獲取客戶端ip
1defget_remote_ip():
2import
socket
3 ip =socket.gethostbyname(socket.gethostname())
4return ip
獲取客戶端地理位置
安裝擴充套件pip install geoip2
1deffind_position_by_ip(ip):
2try:3
import
geoip2.database
4 reader = geoip2.database.reader('
path/geolite2-city.mmdb')
5 info =reader.city(ip)
6 data =
12reader.close()
13except
:14 data ={}
15return data
獲取客戶端ua資訊
#從http 協議 headers 中 獲取 user-agent 配置
判斷目錄是否存在,若不存在則建立
1defis_dir_exists(path):
2importos3
ifnot
os.path.exists(path):
4 os.makedirs(path)
檔案生成檔名並上傳
1defupload(file):
2from datetime import
datetime
3import
random4#
指定儲存路徑,如不存在需要建立
5 path = '
path/'6
#獲取檔案的字尾名
7try
:8 ext = '
.' + file.filename.rsplit('
,',1)[1]
9except
:10 ext = '
.png'11
#組裝新的檔名,生成格式 日時分秒 + 五位隨機數 + 字尾
12 filename = datetime.now().strftime('
%d%h%m%s
')+'
-'+str(random.randint(10000,99999))
13 file_upload_path = path +filename
14 with open(file_upload_path,'wb'
) as fp:
15fp.write(file.read()) 16#
返回檔名
17return filename
無限極分類
#資料來源'''
[ ,
, ,
, ,
, ,
, ,
, , , ]
'''
1#實現**
2def get_infinite_level(data,pid=0,deep=0):
3 tree =
4for row in
data:
5if row['
pid'] ==pid:
6 row['
deep
'] =deep
7 row['
child
'] = get_infinite_level(data,row['
id'],deep+1)89
return tree
#實現結果
[, ]
}]}, , ]
}, ]
}]}, ]
}, ]
'''
獲取樹狀結構
#資料來源'''
[ ,
, ,
, ,
, ,
, ,
, ,
, ]'''
1#實現**
2def get_tree_struct(data,pid=0,level=0):
3 data_list =
4for info in
data:
5if info['
pid'] ==pid:
6 info['
level
'] =level
7 info['
name
'] = '
^-^
'*level + info['
name']
89 data_list += get_tree_struct(data, info['
id'], level + 1)
10return data_list
'''[, , , , , , , , , , , , ]
'''
STL vector 輔助函式
template inline bool operator const vector tp,alloc x,const vector tp,alloc y 判斷相等 template inline bool operator const vector tp,alloc x,const vector ...
oracle輔助函式
oracle 輔助函式 1 decode exp,s1,r1,s2,r2.s,r def 可以把它理解成乙個增強型的if else,只不過它並不通過多行語句,而是在乙個函式內實現if else的功能。exp做為初始引數。s做為對比值,相同則返回r,如果s有多個,則持續遍歷所有s,直到某個條件為真為止...
遊戲輔助函式
游標的控制 移動游標到指定位置 移動游標到指定位置 void gotoxy int x,int y 隱藏游標 隱藏游標 void hide 第乙個指游標高度 1 100 第二個指是否可見光標 0 1 setconsolecursorinfo hout,cursor info 設定控制台游標大小和可見...