SessionMiddleware激活后,每個傳給視圖(view)函數的第一個參數``HttpRequest``對象都有一個session屬性,這是一個字典型的對象。你可以象用普通字典一樣來用它。例如,在視圖(view)中你可以這樣用:#Setasessionvalue:request.session["fav_color"]="blue"#Getasessionvalue--thiscouldbecalledinadifferentview,#orman
系統 2019-09-27 17:38:45 1756
在業務穩定性要求比較高的情況下,運維為能及時發現問題,有時需要對應用程序的日志進行實時分析,當符合某個條件時就立刻報警,而不是被動等待出問題后去解決,比如要監控nginx的$request_time和$upstream_response_time時間,分析出最耗時的請求,然后去改進代碼,這時就要對日志進行實時分析了,發現時間長的語句就要報警出來,提醒開發人員要關注,當然這是其中一個應用場景,通過這種監控方式還可以應用到任何需要判斷或分析文件的地方,所以今天
系統 2019-09-27 17:38:40 1756
實例如下:#環境:python3.xdefgetExportDbSql(db,index):#獲取導出一個數據庫實例的sql語句sql='mysqldump-u%s-p%s-h%s-P%d--default-character-set=utf8--databasesmu_ins_s%s>%s.s%d.mu_ins_%d.sql'%(db['user'],db['pwd'],db['host'],db['port'],index,db['server'],i
系統 2019-09-27 17:38:36 1756
先給出結論:要替換的字符數量不多時,可以直接鏈式replace()方法進行替換,效率非常高;如果要替換的字符數量較多,則推薦在for循環中調用replace()進行替換。可行的方法:1.鏈式replace()string.replace().replace()1.x在for循環中調用replace()「在要替換的字符較多時」2.使用string.maketrans3.先re.compile然后re.sub……defa(text):chars=""for
系統 2019-09-27 17:38:36 1756
深入理解pythontry異常處理機制#python的try語句有兩種風格#一:種是處理異常(try/except/else)#二:種是無論是否發生異常都將執行最后的代碼(try/finally)try/except/else風格try:<語句>#運行別的代碼except<名字>:<語句>#如果在try部份引發了'name'異常except<名字>,<數據>:<語句>#如果引發了'name'異常,獲得附加的數據else:<語句>#如果沒有異常發生#try的
系統 2019-09-27 17:38:34 1756
在Python2.5中,with關鍵字被加入。它將常用的try...except...finally...模式很方便的被復用。看一個最經典的例子:withopen('file.txt')asf:content=f.read()在這段代碼中,無論with中的代碼塊在執行的過程中發生任何情況,文件最終都會被關閉。如果代碼塊在執行的過程中發生了一個異常,那么在這個異常被拋出前,程序會先將被打開的文件關閉。再看另外一個例子。在發起一個數據庫事務請求的時候,經常會用
系統 2019-09-27 17:38:19 1756
先看代碼:In[1]:a={'name':'wang'}In[2]:a.get('age')In[3]:a['age']---------------------------------------------------------------------------KeyErrorTraceback(mostrecentcalllast)in()---->1a['age']KeyError:'age'In[4]:a.get('age',10)Out[4
系統 2019-09-27 17:38:06 1756
以下函數列出某個目錄下(包括子目錄)所有文件,本隨筆重點不在于遞歸函數的實現,這是一個很簡單的遞歸,重點在于熟悉Python庫os以及os.path一些函數的功能和用法。1.os.listdir(path):列出path下所有內容(包括文件和目錄,不包括.和..)2.os.path.join(path1,path2,path3...):拼接目錄,例如將'home','test'拼接成'home/test/'3.os.path.isdir(path):判斷p
系統 2019-09-27 17:38:04 1756
今天一個朋友給個需求:來來{'isOK':1,'isRunning':None,'isError':None}怎么轉換成字典好,一看就是json轉化很簡單,開始:importjsona="{'isOK':1,'isRunning':None,'isError':None}"printjson.loads(a)死活出不來結果,還報錯,查了兩個小時的百度,沒搞明白。最后,直接復制網上的代碼,OK,運行成功,可是把我的a變量填進去,不行,報錯;開始對比兩個變量有
系統 2019-09-27 17:38:00 1756
在實際應用中,你將用Django模板系統來創建整個HTML頁面。這就帶來一個常見的Web開發問題:在整個網站中,如何減少共用頁面區域(比如站點導航)所引起的重復和冗余代碼?解決該問題的傳統做法是使用服務器端的includes,你可以在HTML頁面中使用該指令將一個網頁嵌入到另一個中。事實上,Django通過剛才講述的{%include%}支持了這種方法。但是用Django解決此類問題的首選方法是使用更加優雅的策略――模板繼承。本質上來說,模板繼承就是先構造
系統 2019-09-27 17:37:53 1756