① django 日誌文件如何按時間日期切割,原生不支持嗎
django 日誌文件如何按時間日期切割
linux下處理tomcat日誌切割與刪除操作:
System.out和System.err都被列印到catalina.out。catalina.out不會rotate。一般在部署tomcat後,運行久了,catalina.out文件會越來越大,對系統的穩定造成了一定的影響。
1、可通過修改conf/logging.properties日誌配置文件來屏蔽掉這部分的日誌信息。
將level級別設置成WARNING就可以大量減少日誌的輸出,當然也可以設置成OFF,直接禁用掉。
一般日誌的級別有:
2、使用cronolog工具切分Tomcat的catalina.out日誌文件,下載、安裝cronolog。
用which cronolog可以查到安裝的路徑,這個路徑待會在修改catalina.sh時會用到。
修改catalina.sh 將183行修改成184行內容,注釋掉355行,368、369行替換成370、371行,379、380行替換成381、382行。
這樣在/usr/local/tomcat/logs每天會自動生成catalina.%Y-%m-%d.out文件,下面要做的是定期清理這些過期的文件,可以通過crontab來實現。
② 怎麼Django標簽過濾
1.創建一個模板庫
使用模板過濾器的時候,直接把過濾器寫在app里,
例如:在app里新建一個templatetags的文件夾,這個目錄應當和 models.py 、 views.py 等處於同一層次。例如:
books/
__init__.py
models.py
templatetags/
views.py
在 templatetags 中創建兩個空文件:一個 __init__.py (告訴Python這是一個包含了Python代碼的包)和一個用來存放你自定義的標簽/過濾器定義的文件。第二個文件的名字稍後將用來載入標簽。例如,如果你的自定義標簽/過濾器在一個叫作 poll_extras.py 的文件中,你需要在模板中寫入如下內容: {% load poll_extras %}
{% load %}標簽檢查 INSTALLED_APPS 中的設置,僅允許載入已安裝的Django應用程序中的模板庫。
要成為有效的標簽庫,模塊必須包含一個模塊級的變數: register ,這是一個 template.Library 的實例。這個 template.Library 實例是包含所有已注冊的標簽及過濾器的數據結構。因此,在模塊的頂部位置插入下述代碼:
fromdjangoimport template
register = template.Library()
③ django模塊不能用for i in range(0, 5)總報錯
我覺得你的目的很簡單,就是想在模版中簡單執行5次循環。可以使用make_list過濾器:
{% for i in '12345'|make_list %}
{{ i }}
{% endfor %}如果覺得這樣有局限性,可以寫一個簡單的自定義過濾器:
@register.filter('list')
def do_list(value):
return range(1, value+1)然後這樣使用:
{% for i in 5|list %}
{{ i }}
{% endfor %}如果你已經在視圖中定義了好了一個變數,而只想執行5次,那麼可以這樣子:
{% for i in example|slice:":5" %}
{{ i }}
{% endfor %}
④ python中django過濾器,date過濾原則能解釋清楚一些.
https://docs.djangoproject.com
⑤ 描述Django中的中間件執行原理,如何自定義一個過濾返回的中間鍵。
如果參數只涉及model自身的屬性值, 在模版中可以直接調用,注意,不能加括弧{{entry.def_name}};或者使用property(方法名)函數,將方法的結果變為屬性;new_value = property(_def_name), 使用:{{ entry.new_value }}
如果參數涉及其他變數,建議使用自定義模版過濾器(自己搜);
如果還不能滿足,建議更換模版模塊.
以上基於python2.7 django1.11.18
⑥ django的datetim問題
可以的,你這樣寫:applyTime = models.DateTimeField(verbose_name="申請時間") # 申請時間讀取出來:{{xq.applyTime|date:"Y-m-d H:i:s" }}就是你想要的格式2013-11-22 10:40:46
⑦ django中怎麼自定義過濾器
在某個app下創建一個名為templatetags(必需,且包名不可變)的包。假設我們在名為polls的app下創建了一個templatetags的包,並在該包下創建了一個名為mytags的文件。那麼目錄結構看起來應該就像這樣:
polls/
__init__.py
models.py
templatetags/
__init__.py
mytags.py
views.py
⑧ django 過濾器 什麼意思
關於django過濾器,
過濾器,變數的顯示形式的改變
一、形式:小寫
{{ name | lower }}
二、串聯:先轉義文本到HTML,再轉換每行到 <p> 標簽
{{ my_text|escape|linebreaks }}
三、過濾器的參數
顯示前30個字
{{ bio | truncatewords:"30" }}
格式化
{{ pub_date | date:"F j, Y" }}
過濾器列表
{{ 123|add:"5" }} 給value加上一個數值
{{ "AB'CD"|addslashes }} 單引號加上轉義號,一般用於輸出到javascript中
{{ "abcd"|capfirst }} 第一個字母大寫
{{ "abcd"|center:"50" }} 輸出指定長度的字元串,並把值對中
{{ "123spam456spam789"|cut:"spam" }} 查找刪除指定字元串
{{ value|date:"F j, Y" }} 格式化日期
{{ value|default:"(N/A)" }} 值不存在,使用指定值
{{ value|default_if_none:"(N/A)" }} 值是None,使用指定值
{{ 列表變數|dictsort:"數字" }} 排序從小到大
{{ 列表變數|dictsortreversed:"數字" }} 排序從大到小
{% if 92|divisibleby:"2" %} 判斷是否整除指定數字
{{ string|escape }} 轉換為html實體
{{ 21984124|filesizeformat }} 以1024為基數,計算最大值,保留1位小數,增加可讀性
{{ list|first }} 返回列表第一個元素
{{ "ik23hr&jqwh"|fix_ampersands }} &轉為&
{{ 13.414121241|floatformat }} 保留1位小數,可為負數,幾種形式
{{ 13.414121241|floatformat:"2" }} 保留2位小數
{{ 23456 |get_digit:"1" }} 從個位數開始截取指定位置的1個數字
{{ list|join:", " }} 用指定分隔符連接列表
{{ list|length }} 返回列表個數
{% if 列表|length_is:"3" %} 列表個數是否指定數值
{{ "ABCD"|linebreaks }} 用新行用<p> 、 <br /> 標記包裹
{{ "ABCD"|linebreaksbr }} 用新行用<br /> 標記包裹
{{ 變數|linenumbers }} 為變數中每一行加上行號
{{ "abcd"|ljust:"50" }} 把字元串在指定寬度中對左,其它用空格填充
{{ "ABCD"|lower }} 小寫
{% for i in "1abc1"|make_list %}ABCDE,{% endfor %} 把字元串或數字的字元個數作為一個列表
{{ "abcdefghijklmnopqrstuvwxyz"|phone2numeric }} 把字元轉為可以對應的數字??
{{ 列表或數字|pluralize }} 單詞的復數形式,如列表字元串個數大於1,返回s,否則返回空串
{{ 列表或數字|pluralize:"es" }} 指定es
{{ 列表或數字|pluralize:"y,ies" }} 指定ies替換為y
{{ object|pprint }} 顯示一個對象的值
{{ 列表|random }} 返回列表的隨機一項
{{ string|removetags:"br p div" }} 刪除字元串中指定html標記
{{ string|rjust:"50" }} 把字元串在指定寬度中對右,其它用空格填充
{{ 列表|slice:":2" }} 切片
{{ string|slugify }} 字元串中留下減號和下劃線,其它符號刪除,空格用減號替換
{{ 3|stringformat:"02i" }} 字元串格式,使用Python的字元串格式語法
{{ "E<A>A</A>B<C>C</C>D"|striptags }} 剝去[X]HTML語法標記
{{ 時間變數|time:"P" }} 日期的時間部分格式
{{ datetime|timesince }} 給定日期到現在過去了多少時間
{{ datetime|timesince:"other_datetime" }} 兩日期間過去了多少時間
{{ datetime|timeuntil }} 給定日期到現在過去了多少時間,與上面的區別在於2日期的前後位置。
{{ datetime|timeuntil:"other_datetime" }} 兩日期間過去了多少時間
{{ "abdsadf"|title }} 首字母大寫
{{ "A B C D E F"|truncatewords:"3" }} 截取指定個數的單詞
{{ "<a>1<a>1<a>1</a></a></a>22<a>1</a>"|truncatewords_html:"2" }} 截取指定個數的html標記,並補完整
<ul>{{ list|unordered_list }}</ul> 多重嵌套列表展現為html的無序列表
{{ string|upper }} 全部大寫
<a href="{{ link|urlencode }}">linkage</a> url編碼
{{ string|urlize }} 將URLs由純文本變為可點擊的鏈接。(沒有實驗成功)
{{ string|urlizetrunc:"30" }} 同上,多個截取字元數。(同樣沒有實驗成功)
{{ "B C D E F"|wordcount }} 單詞數
{{ "a b c d e f g h i j k"|wordwrap:"5" }} 每指定數量的字元就插入回車符
{{ boolean|yesno:"Yes,No,Perhaps" }} 對三種值的返回字元串,對應是 非空,空,None
⑨ 用django定義自動插入的時間顯示格式怎麼調
在模板中可以使用time和date過濾器格式化時間,如:{{ example_date | date:」F
j, Y」 }}。
可以在settings里定義DATE_FORMAT,默認值為 'N j, Y';定義DATETIME_FORMAT,默認值是 'N j, Y, P',定義TIME_FORMAT,默認值為'P'。
如果這些都還不能夠滿足需求,那麼就寫一個自定義模板過濾器,或者在模型中定義一個新方法。
⑩ django中怎麼格式化當前時間
datetime.datetime.now()
#2012-03-15 11:50:57.728000
這個會返回 microsecond。因此這個是我們不需要的。所以得做一下修改
datetime.datetime.now().strftime("%Y-%m-%d %H:%I:%S");
格式化之後,就得到了我們常見的格式了。
附:strftime參數
strftime(format[, tuple]) -> string
將指定的struct_time(默認為當前時間),根據指定的格式化字元串輸出
python中時間日期格式化符號:
%y 兩位數的年份表示(00-99)
%Y 四位數的年份表示(000-9999)
%m 月份(01-12)
%d 月內中的一天(0-31)
%H 24小時制小時數(0-23)
%I 12小時制小時數(01-12)
%M 分鍾數(00=59)
%S 秒(00-59)
%a 本地簡化星期名稱
%A 本地完整星期名稱
%b 本地簡化的月份名稱
%B 本地完整的月份名稱
%c 本地相應的日期表示和時間表示
%j 年內的一天(001-366)
%p 本地A.M.或P.M.的等價符
%U 一年中的星期數(00-53)星期天為星期的開始
%w 星期(0-6),星期天為星期的開始
%W 一年中的星期數(00-53)星期一為星期的開始
%x 本地相應的日期表示
%X 本地相應的時間表示
%Z 當前時區的名稱
%% %號本身