最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決django FileFIELD的編碼問題

 更新時(shí)間:2020年03月30日 10:12:22   作者:SHAN_9W  
這篇文章主要介紹了解決django FileFIELD的編碼問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧

當(dāng)獲取FileField數(shù)據(jù)時(shí)會(huì)出現(xiàn)編碼問題

在數(shù)據(jù)庫里顯示的是D:\python項(xiàng)目\wxmkczpy\uploadfile\QQ截圖20190210180915.png

而取出后變成

D%3A/python%E9%A1%B9%E7%9B%AE/wxmkczpy/uploadfile/QQ%E6%88%AA%E5%9B%BE20190210180915.png

這是url編碼

所以可以用urllib 的parse模塊解決

from urllib import parse
 
# Create your tests here.
a = "D%3A/python%E9%A1%B9%E7%9B%AE/wxmkczpy/uploadfile/QQ%E6%88%AA%E5%9B%BE20190210180915.png"
str3 = parse.unquote(a) #解碼字符串
print(str3) 

"C:\Program Files\Python36\python.exe" D:/python項(xiàng)目/wxmkczpy/wechat_app/tests.py
D:/python項(xiàng)目/wxmkczpy/uploadfile/QQ截圖20190210180915.png

補(bǔ)充知識(shí):Django中FilePathField字段的使用

class FilePathField(path=None[, match=None, recursive=False, max_length=100, **options])

一個(gè) CharField ,內(nèi)容只限于文件系統(tǒng)內(nèi)特定目錄下的文件名。有三個(gè)參數(shù), 其中第一個(gè)是 必需的:

FilePathField.path

必填。這個(gè)FilePathField 應(yīng)該得到其選擇的目錄的絕對文件系統(tǒng)路徑。例如: "/home/images".

FilePathField.match

可選的.FilePathField 將會(huì)作為一個(gè)正則表達(dá)式來匹配文件名。但請注意正則表達(dá)式將將被作用于基本文件名,而不是完整路徑。例如: "foo.*.txt$", 將會(huì)匹配到一個(gè)名叫 foo23.txt 的文件,但不匹配到 bar.txt 或者 foo23.png.

FilePathField.recursive

可選的.True 或 False.默認(rèn)是False.聲明是否包含所有子目錄的路徑

FilePathField.allow_files

可選的.True 或 False.默認(rèn)是True.聲明是否包含指定位置的文件。該參數(shù)或allow_folders 中必須有一個(gè)為 True.

FilePathField.allow_folders

是可選的.輸入 True 或者 False.默認(rèn)值為 False.聲明是否包含指定位置的文件夾。該參數(shù)或 allow_files 中必須有一個(gè)為 True.

當(dāng)然,這些參數(shù)可以同時(shí)使用。

有一點(diǎn)需要提醒的是 match只匹配基本文件名(base filename), 而不是整個(gè)文件路徑(full path). 例如:

FilePathField(path="/home/images", match="foo.*", recursive=True)

...將匹配/home/images/foo.png而不是/home/images/foo/bar.png 因?yàn)橹辉试S匹配 基本文件名(foo.png 和 bar.png).

FilePathField實(shí)例被創(chuàng)建在您的數(shù)據(jù)庫為varchar列默認(rèn)最大長度為 100 個(gè)字符。作為與其他字段,您可以更改使用的max_length最大長度。

大多數(shù)網(wǎng)站在插入圖片時(shí)一般都是這樣處理的:

上傳大尺寸圖時(shí),自動(dòng)生成一張縮略圖;網(wǎng)頁中插入縮略圖,并把地址指向大尺寸的圖。

所以在Django中,我這樣定義主要字段:

title = models.CharField(max_length = 120)
img = models.ImageField(upload_to = 'screenshots')
thumb = models.FilePathField(path = 'screenshots/thumb')

為什么thumb不是ImageFiled呢?因?yàn)榭紤]到Admin中上傳的是大圖,而縮略圖不是上傳,而是自動(dòng)生成的。所以在這樣寫。具體的處理是(假設(shè)MEDIA_ROOT為/tmp,MEDIA_URL為http://localhost/media/:

上傳圖片(test.jpg)至MEDIA_ROOT/screenshots,此時(shí)img的屬性是:

img.name = screenshots/test.jpg, img.path = /tmp/screenshots/test.jpg, img.url = http://localhost/media/screenshots/test.jpg

判斷圖片大小是否需要做縮略圖,如果不需要,直接復(fù)制img.path到thumb,否則,生成一張縮略圖(以test-thumb.jpg命名)保存在screenshots/thumb下。

在網(wǎng)頁中插入圖片時(shí),就可以簡單地用

<a href="{% object.img.url %}" rel="external nofollow" ><img title="{% object.title %}" src="{% object.thumb %}" alt="{% object.title %}"></a>

來表示了。object表示一個(gè)ScreenShot。

以上這篇解決django FileFIELD的編碼問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • python tkinter Entry控件的焦點(diǎn)移動(dòng)操作

    python tkinter Entry控件的焦點(diǎn)移動(dòng)操作

    這篇文章主要介紹了python tkinter Entry控件的焦點(diǎn)移動(dòng)操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 日志增量抓取實(shí)現(xiàn)方法

    python 日志增量抓取實(shí)現(xiàn)方法

    下面小編就為大家分享一篇python 日志增量抓取實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • Python實(shí)現(xiàn)自動(dòng)簽到腳本的示例代碼

    Python實(shí)現(xiàn)自動(dòng)簽到腳本的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)簽到腳本的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python實(shí)現(xiàn)上傳下載文件功能

    python實(shí)現(xiàn)上傳下載文件功能

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)上傳下載文件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Python如何生成隨機(jī)數(shù)及random隨機(jī)數(shù)模塊應(yīng)用

    Python如何生成隨機(jī)數(shù)及random隨機(jī)數(shù)模塊應(yīng)用

    這篇文章主要介紹了Python如何生成隨機(jī)數(shù)及random隨機(jī)數(shù)模塊應(yīng)用,首先我們要知道在python中用于生成隨機(jī)數(shù)的模塊是random,在使用前需要import。由此展開內(nèi)容介紹,需要的小伙伴可以參考一下
    2022-06-06
  • pytorch tensorboard可視化的使用詳解

    pytorch tensorboard可視化的使用詳解

    tensorboard是tensorflow用來可視化訓(xùn)練和測試過程的模塊,而pytorch并沒有可視化模塊,但是pytoch=1.2.0版本以上開始支持tensorboard
    2022-10-10
  • Python自動(dòng)化辦公之手機(jī)號(hào)提取

    Python自動(dòng)化辦公之手機(jī)號(hào)提取

    這篇文章主要介紹了如何利用Python語言編寫一個(gè)手機(jī)號(hào)提取器,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定的幫助,需要的可以參考一下
    2022-06-06
  • 基于OpenCV和Gradio實(shí)現(xiàn)簡單的人臉識(shí)別詳解

    基于OpenCV和Gradio實(shí)現(xiàn)簡單的人臉識(shí)別詳解

    這篇文章主要為大家詳細(xì)介紹了如何基于OpenCV和Gradio實(shí)現(xiàn)簡單的人臉識(shí)別功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2023-04-04
  • python創(chuàng)建文本文件的簡單方法

    python創(chuàng)建文本文件的簡單方法

    在本篇內(nèi)容里小編給大家整理分享的是一篇關(guān)于python創(chuàng)建文本文件的簡單方法,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-08-08
  • Python利用imshow制作自定義漸變填充柱狀圖(colorbar)

    Python利用imshow制作自定義漸變填充柱狀圖(colorbar)

    這篇文章主要介紹了Python利用imshow制作自定義漸變填充柱狀圖(colorbar),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12

最新評論

阿尔山市| 四川省| 谢通门县| 上林县| 汽车| 蚌埠市| 沙雅县| 萨嘎县| 西和县| 汝南县| 凌云县| 南皮县| 永康市| 平山县| 巴彦淖尔市| 金昌市| 高要市| 锦州市| 东台市| 商河县| 明水县| 淮阳县| 通许县| 思茅市| 宁津县| 五寨县| 西充县| 清河县| 镇赉县| 台北县| 搜索| 伊宁县| 仙居县| 贺州市| 景东| 西藏| 宜川县| 凤阳县| 弥勒县| 清远市| 葫芦岛市|