django網站模板下載,django 水印

 2023-12-06 阅读 23 评论 0

摘要:views.py 做水印需要安裝PIL模塊,windows的有.exe的文件http://www.pythonware.com/products/pil/index.htm#pil116這只是其中一個,應該還有其他的。from PIL import Image, ImageEnhance LEFT_TOP = 'lt' LEFT_BOTTOM = 'lb' django網站模板

views.py

做水印需要安裝PIL模塊,windows的有.exe的文件http://www.pythonware.com/products/pil/index.htm#pil116這只是其中一個,應該還有其他的。
from PIL import Image, ImageEnhance

LEFT_TOP = 'lt'

LEFT_BOTTOM = 'lb'

django網站模板下載?RIGHT_TOP = 'rt'

RIGHT_BOTTOM = 'rb'

WIDTH_GRID = 30.0

HIGHT_GRID = 30.0

#水印的位置?

django-idcops? def mark_layout(im, mark, layout=RIGHT_BOTTOM):

??? im_width, im_hight = im.size[0], im.size[1] ???

?? ?mark_width, mark_hight = mark.size[0], mark.size[1]

??? coordinates = { LEFT_TOP: (int(im_width/WIDTH_GRID),int(im_hight/HIGHT_GRID)), ?????????????

??????????????????? ?????? LEFT_BOTTOM: (int(im_width/WIDTH_GRID), int(im_hight - mark_hight - im_hight/HIGHT_GRID)), ???????????????????

django源碼、????????????????????????? ?RIGHT_TOP: (int(im_width - mark_width - im_width/WIDTH_GRID), int(im_hight/HIGHT_GRID)), ???????????

????????????????? ???????? RIGHT_BOTTOM: (int(im_width - mark_width - im_width/WIDTH_GRID), ????????????????

?????????????????????? ??? int(im_hight - mark_hight - im_hight/HIGHT_GRID)), ????????????????? } ??? return coordinates[layout]

#水印的圖片

def reduce_opacity(mark, opacity): ??

django template,? ? assert opacity >= 0 and opacity <= 1 ???

?? ?mark = mark.convert('RGBA') if mark.mode != 'RGBA' else mark.copy() ??

? ? alpha = mark.split()[3] ???

?? ?alpha = ImageEnhance.Brightness(alpha).enhance(opacity) ???

??? mark.putalpha(alpha) ???

Django Unchained、??? return mark

def water_mark(img_data, opacity=1): ??

? img = Image.open(img_data) ???

??mark = Image.open(os.path.normpath(os.path.join(os.path.dirname(__file__),"../../"))+'/static/Manager/images/watermark.png') # 水印文件可以使用指定路徑

? if opacity < 1: ??????

django mvc。? ? mark = reduce_opacity(mark, opacity)???

? if img.mode != 'RGBA': ??????

? ? img = img.convert('RGBA') ???????

?? ?img_format = 'JPEG' ???

? else: ???????

django modelform,??? ?img_format = 'PNG'?????

? layer = Image.new('RGBA', img.size, (0,0,0,0))???

? layer.paste(mark, mark_layout(img, mark))????

??img = Image.composite(layer, img, layer) ???

??return img

django bootstrap、調用的地方:water_mark(“圖片的路徑”).save(“圖片的路徑”, quality=100)

改圖的大小:

img = Image.open(“圖片的路徑”)

width,height=img.size

new_img1 = img.resize((int(width*0.5), int(height*0.5)),Image.BILINEAR)#按照50%縮小

django form?new_img2 = img.resize((130,int((float(height)/width)*130)),Image.BILINEAR)#小圖的比例

時間格式化:

import datetime

datetime.datetime.now().strftime("%Y%m%d%H%M%S")

[轉]django?過濾器?、日期格式化參數

過濾器相關:

django vue,一、形式:小寫 {{?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?}}?&轉為&amp;

{{?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

?

日期格式化參數:

a?'a.m.'?或?'p.m.'?(注意,它與PHP?的輸出略有不同.它包括了句點(django擴展).?

'a.m.'? A?'AM'?或?'PM'.?'AM'? B?未實現.??

d?每月第幾天,?帶前導零?'01'?to?'31'

?D?每周第幾天,3字母的字符串.?

'Fri'? f?時間,?12-小時制的小時和分鐘數,?如果分鐘數為零,則不顯示.(django?擴展).?

'1',?'1:30'? F?月份,?長文本格式.?

'January'? g?小時,?12-小時制,沒有前導零?'1'?to?'12'?

G?小時,?24-小時制,沒有前導零?'0'?to?'23'?

h?小時,?12-小時制,有前導零?'01'?to?'12'?

H?小時,?24-小時制,有前導零?'00'?to?'23'?

i?分鐘.?'00'?to?'59'?

I?未實現???

j?每月第幾天,?無前導零?'1'?to?'31'?

l?每周第幾天,長文本格式.?'Friday'?

L?是否閏年.?True?or?False?

m?數字表示的月份,有前導零.?'01'?to?'12'?

M?月份,3字母短文本格式.?'Jan'?

n?數字表示的月份,無前導零?'1'?to?'12'?

N?出版風格的月份縮寫(django?擴展)?'Jan.',?'Feb.',?'March',?'May'?

O?與格林威治的時間差(以小時計)?'+0200'?

P?12小時制的小時分鐘及'a.m.'/'p.m.'?分鐘數若為零則不顯示.?用字符串表示特殊?的時間點,?如?'midnight'?和?'noon'?(django擴展)?'1?a.m.',?'1:30?p.m.',?'midnight','noon',?'12:30?p.m.'?

r?RFC?822?格式的日期?.?'Thu,?21?Dec?2000?16:01:07+0200'?

s?秒數,?帶有前導零的數字表示?'00'?to?'59'?

S?英語序數后綴,用于一個月的第幾天,2個字符?'st',?'nd',?'rd'?or?'th'? t?給定月共有多少天.?28?to?31?

T?本機時區.?'EST',?'MDT'?

U?未實現???

w?一周中的第幾天,沒有前導零的數字?'0'?(Sunday)?to?'6'?(Saturday)?

W?ISO-8601?一年的第多少星期數,?一周從?星期一開始?1,?23?

y?Year,?2?位數字表示?'99'?

Y?Year,?4?位數字表示?'1999'? z?一年中的第幾天?.?0?to?365?

Z?以秒計的時區偏移量.?這個偏移量對UTC西部?時區總是負數,而對UTC東部時區則總是正數?-43200?to?43200

時間睡眠:

import time

time.sleep(0.001)#括號內的時間單位為秒

靜態路徑的設置方法:

setting.py

STATIC_URL = '/static/'

STATICFILES_DIRS = ( 'static' )

url.py

url(r'^static/(?P<path>.*)$', 'django.views.static.serve',
?????????????????????????? {'document_root': settings.STATICFILES_DIRS}, name="static"),

url(r'^upload/(?P<path>.*)$', 'django.views.static.serve', {'document_root': "upload"}, name="upload"),靜態的上傳文件的路徑

?

轉載于:https://www.cnblogs.com/angelfeeling/p/3444985.html

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/4/192851.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息