uuid
通用唯一識(shí)別碼(Universally Unique Identifier, uuid)慢逾,是一種軟件建構(gòu)標(biāo)準(zhǔn)埃叭,亦為開放軟件基金會(huì)組織在分布式計(jì)算機(jī)領(lǐng)域的一部分。
UUID的目的罕袋,是讓分布式系統(tǒng)中的所有元素潮模,都能有誒億的辨識(shí)信息亮蛔,而不需要通過中央控制端來識(shí)別信息的制定。
Python uuid庫就是用來生成它的擎厢。
itertools
Python內(nèi)建的itertools提供了非常有用的用于操作迭代對(duì)象的函數(shù)究流,這些函數(shù)的返回都是一個(gè)迭代器;
pymysql
pymysql是一個(gè)純Python寫的MySQL客戶端动遭,它的目標(biāo)是替代MySQLdb,可以在多種Python IDE環(huán)境下運(yùn)行芬探。
它在Python3.x中用于連接MySQL服務(wù)器的一個(gè)庫。
conn=pymysql.connect(
host='127.0.0.1',user='root',passwd='root',db='mysql'
)
cur = conn.cursor()
#cursor 游標(biāo)
cur.execute('CREATE DATABASE IF NOT EXISTS activate_code')
cur.execute('USE activate_code')
cur.execute('''CREATE TABLEIFNOT EXISTS table_test(
id INT NOT NULL AUTO_INCREMENT,
code? VARCHAR(40) NOT NULL,
PRIMARY KEY(id)
)''')
cur.execute('INSERT INTO table_test(code) VALUES(xxx)')
cur.close()
conn.close()
PIL
Python Imaging Library, PIL不支持3.x厘惦。在3.x版本上有一個(gè)兼容的Pillow ---> pip install pillow偷仿。
pymongo
pymongo是Python中用來操作MongoDB的一個(gè)庫;
MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫,旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案酝静。其文件存儲(chǔ)格式類似于JSON节榜,叫BSON,不嚴(yán)謹(jǐn)别智、通俗地理解全跨,就是Python中的字典鍵值對(duì)格式。
pip install pymongo
或 pip install pymongo -i https://pypi.tuna.tsinghua.edu.cn/simple
# -i, --index-urlBase URL of Python Package Index
connection = pymongo.MongoClient('127.0.0.1',27017)
redis-py
python提供了一個(gè)模塊redis-py來使我們很方便的操作redis數(shù)據(jù)庫亿遂。
pip install redis
conn = redis.Redis(host='x.x.x.x', port=6379)
#conn = redis.Redis(host='x.x.x.x',port=6379, passwor='xxxxxx')
conn.set('name', 'zhang')
print(conn.get('name'))
可能這里會(huì)報(bào)錯(cuò):protected mode, bind ip
redis.exceptions.ResponseError: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface.
解決方法:/etc/redis.conf
1渺杉,Redis監(jiān)聽地址 “bind: x.x.x.x”蛇数,強(qiáng)烈建議只對(duì)本地127.0.0.1開放,我這連接對(duì)我自己的內(nèi)網(wǎng)地址 192.168.1.7開放是越,不建議對(duì)外網(wǎng)開放耳舅,有安全隱患;
2倚评,防火墻浦徊,最簡單就是關(guān)閉防火墻,另一個(gè)就是開放redis的監(jiān)聽端口天梧;
3盔性,開啟守護(hù)進(jìn)程,讓redis可以在后臺(tái)運(yùn)行而不必通過 redis-server 的方式來啟動(dòng)呢岗,將配置文件里的 deamonize no 改為 yes冕香;
4,關(guān)閉redis的保護(hù)模式(protect-mode)后豫,這里的保護(hù)模式是指是否允許其他IP的設(shè)備訪問redis悉尾。如果開啟的話就只能允許本機(jī)訪問。如果是生產(chǎn)開發(fā)的實(shí)際運(yùn)行環(huán)境挫酿,請(qǐng)一定開啟保護(hù)模式构眯。 protect-mode no;
5早龟,設(shè)置redis數(shù)據(jù)庫密碼惫霸。如果是本機(jī)測試,可以跳過這一步拄衰。但如果要開放外網(wǎng)訪問redis它褪,就必須給redis添加密碼。不僅僅是redis翘悉,任何數(shù)據(jù)庫都應(yīng)該設(shè)置密碼茫打,否則對(duì)外網(wǎng)開放的數(shù)據(jù)庫就成了活靶子。 requirepass ?password設(shè)置密碼;
再次強(qiáng)調(diào)老赤,任何正式數(shù)據(jù)庫環(huán)境請(qǐng)一定注意安全轮洋,以上操作應(yīng)用于測試環(huán)境。
ngxtop
ngxtop類似于Linux的top命令抬旺,設(shè)計(jì)為在短時(shí)間內(nèi)運(yùn)行弊予,做誒服務(wù)器的故障排除和監(jiān)控使用。
ngxtop使用Python2開發(fā)开财,雖然支持Python3汉柒,但我在Python3.x環(huán)境下安裝完成后會(huì)有問題!
pip install ngxtop
#可能需要用到 yum install python-pip
用法:
ngxtop [options]
ngxtop [options] (print|top|avg|sum) ...
ngxtop info
ngxtop [options] query ...
使用栗子:
顯示Nginx服務(wù)器责鳍,按請(qǐng)求數(shù)量排序 ---- ngxtop碾褂;
顯示前20個(gè)最頻繁的請(qǐng)求 ---- ngxtop -n 20;
列出需要顯示的變量 ---- ngxtop print request http_user_agent历葛;
獲取Nginx基本信息 ---- ngxtop info正塌;
顯示請(qǐng)求最多的客戶端IP地址 ---- ngxtop top remote_addr;
顯示狀態(tài)碼是404的請(qǐng)求 ---- ngxtop -i ‘status == 404’ print request status恤溶;
統(tǒng)計(jì)訪問次數(shù)最多的請(qǐng)求 ---- ngxtop -l access.log --no-follow乓诽;
自定義過濾條件 ---- ngxtop -l access.log --no-follow -i ‘status != 200’咒程;
更過自行查看幫助信息偷崩;
使用普通格式從遠(yuǎn)程服務(wù)器解析Nginx日志:
ssh user@remote_host tail -f /var/log/nginx/access.log | ngxtop -f common
re模塊:核心函數(shù)和方法
以下函數(shù)和方法與已經(jīng)編譯的正則表達(dá)對(duì)象(regex object)和正則匹配對(duì)象(regex match object)的方法同名并且具有相同的功能切距。
幾乎所有的 re模塊函數(shù)都可以作為 regex 對(duì)象的方法狸剃。
使用 compile() 函數(shù)編譯正則表達(dá)式滞时;
匹配對(duì)象以及 group() 和 groups() 方法;
使用 match() 方法匹配字符串卖宠,
使用 search() 在一個(gè)字符串中查找模式(搜索與匹配的對(duì)比)巍杈;
匹配多個(gè)字符串;
匹配任何單個(gè)字符扛伍;
重復(fù)筷畦,特殊字符以及分組;
匹配字符串的起始和結(jié)尾以及單詞邊界刺洒;
使用 findall() 和 finditer() 查找每一次出現(xiàn)的位置鳖宾;
使用 ?sub() 和 subn() 搜索與替換;
在限定模式上使用 split() 分割字符串逆航;
擴(kuò)展符號(hào)鼎文;