欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決django FileFIELD的編碼問題

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

當獲取FileField數(shù)據(jù)時會出現(xiàn)編碼問題

在數(shù)據(jù)庫里顯示的是D:\python項目\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項目/wxmkczpy/wechat_app/tests.py
D:/python項目/wxmkczpy/uploadfile/QQ截圖20190210180915.png

補充知識:Django中FilePathField字段的使用

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

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

FilePathField.path

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

FilePathField.match

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

FilePathField.recursive

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

FilePathField.allow_files

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

FilePathField.allow_folders

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

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

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

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

...將匹配/home/images/foo.png而不是/home/images/foo/bar.png 因為只允許匹配 基本文件名(foo.png 和 bar.png).

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

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

上傳大尺寸圖時,自動生成一張縮略圖;網頁中插入縮略圖,并把地址指向大尺寸的圖。

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

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

為什么thumb不是ImageFiled呢?因為考慮到Admin中上傳的是大圖,而縮略圖不是上傳,而是自動生成的。所以在這樣寫。具體的處理是(假設MEDIA_ROOT為/tmp,MEDIA_URL為http://localhost/media/:

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

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

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

在網頁中插入圖片時,就可以簡單地用

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

來表示了。object表示一個ScreenShot。

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

相關文章

  • 詳解Python類和對象內容

    詳解Python類和對象內容

    Python遵循面向對象的編程范式。它處理聲明python類,從它們創(chuàng)建對象并與用戶交互。在面向對象的語言中,程序被分成獨立的對象,或者你可以說成幾個小程序。每個對象代表應用程序的不同部分,它們可以相互通信。類是對客觀世界中事物得抽象,而對象是類實例化后的實體
    2021-06-06
  • 由Python運算π的值深入Python中科學計算的實現(xiàn)

    由Python運算π的值深入Python中科學計算的實現(xiàn)

    這篇文章主要介紹了由Python運算π的值深入Python中科學計算的實現(xiàn),由簡單的計算發(fā)散出各種算法的講解,需要的朋友可以參考下
    2015-04-04
  • Win10下python 2.7.13 安裝配置方法圖文教程

    Win10下python 2.7.13 安裝配置方法圖文教程

    這篇文章主要為大家詳細介紹了Win10下python 2.7.13 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • python使用參數(shù)對嵌套字典進行取值的方法

    python使用參數(shù)對嵌套字典進行取值的方法

    這篇文章主要介紹了python使用參數(shù)對嵌套字典進行取值,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04
  • 細數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別

    細數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別

    今天小編就為大家整理了一篇細數(shù)nn.BCELoss與nn.CrossEntropyLoss的區(qū)別,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python二進制轉化為十進制數(shù)學算法詳解

    Python二進制轉化為十進制數(shù)學算法詳解

    這篇文章主要介紹了Python二進制轉化為十進制數(shù)學算法,同時在這里也給大家分享一個好用的內置函數(shù)map(),需要的朋友可以參考下
    2023-01-01
  • python對象轉字典的兩種實現(xiàn)方式示例

    python對象轉字典的兩種實現(xiàn)方式示例

    這篇文章主要介紹了python對象轉字典的兩種實現(xiàn)方式,結合實例形式分析了Python字典與對象數(shù)據(jù)類型轉換相關操作技巧,需要的朋友可以參考下
    2019-11-11
  • 10分鐘快速入門Pandas庫

    10分鐘快速入門Pandas庫

    pandas?是基于NumPy?的一種工具,該工具是為解決數(shù)據(jù)分析任務而創(chuàng)建的,這篇文章主要介紹了10分鐘快速入門Pandas庫,重點介紹pandas常見使用方法,結合實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-02-02
  • python詳解如何通過sshtunnel pymssql實現(xiàn)遠程連接數(shù)據(jù)庫

    python詳解如何通過sshtunnel pymssql實現(xiàn)遠程連接數(shù)據(jù)庫

    為了安全起見,很多公司服務器數(shù)據(jù)庫的訪問多半是要做限制的,由專門的DBA管理,而且都是做的集群,數(shù)據(jù)庫只能內網訪問,所以就有一個直接的問題是,往往多數(shù)時候,在別的機器上(比如自己本地),是不能訪問數(shù)據(jù)庫的,給日常開發(fā)調試造成了很大不便
    2021-10-10
  • python 異步async庫的使用說明

    python 異步async庫的使用說明

    這篇文章主要介紹了python 異步async庫的使用說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05

最新評論