摘要:重寫字段的保存,以重命名為例添加配置中末尾添加配置如下,指定指向的操作文件中的類文件上傳重寫添加應用下添加包,注意有文件,下創建文件,文件內容為初始化重寫方法文件擴展名文件目錄定義文件名,源文件名,避開系統定義的隨機字符串追加,所
settings.py添加配置重寫FileField字段的保存,以重命名為例
settings.py中末尾添加配置如下,指定指向的操作文件中的類:
# 文件上傳重寫 DEFAULT_FILE_STORAGE = "app.customfilefield.storage.FileStorage"添加FileStorage
app應用下添加python包customfilefield,注意有init.py文件,customfilefield下創建py文件storage.py,文件內容為:
storage.py
# -*-coding:utf-8 -*- from django.core.files.storage import FileSystemStorage from django.http import HttpResponse from django.conf import settings import os, time, random from app import utils class FileStorage(FileSystemStorage): def __init__(self, location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL): #初始化 super(FileStorage, self).__init__(location, base_url) #重寫 _save方法 def _save(self, name, content): #文件擴展名 ext = os.path.splitext(name)[1] #文件目錄 d = os.path.dirname(name) # 定義文件名,源文件名,避開系統定義的隨機字符串追加,所以避開不用name字段 end = utils.find_last(str(content), ".") filename = "" if end != -1: filename = str(content)[:end] # 定義文件名,年月日時分秒隨機數 fn = time.strftime("%Y%m%d%H%M%S") fn = fn + "_%d" % random.randint(0,100) #重寫合成文件名 name = os.path.join(d, filename + fn + ext) #調用父類方法 return super(FileStorage, self)._save(name, content)
utils.py
# 獲取字符串中指定字符最后一次出現的位置 def find_last(string,str): last_position=-1 while True: position=string.find(str,last_position+1) if position==-1: return last_position last_position=position
如此,最后上傳的文件名為原文件名加上年月日時分秒加上0-100的隨機數保存,效果如下:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41008.html
摘要:今天介紹一下開發中,定義模型時用到的相關字段類型和字段選項。的實例是作為類型保存到數據庫中的,默認字符串的最大長度是,但是可以使用參數指定最大長度。浮點類型,用中的實例表示整數類型。關于的字段類型和參數就先講到這里。 今天介紹一下django開發中,定義模型時用到的相關字段類型和字段選項。 先說說常用的字段類型:1) AutoField: 自增字段類型,當自定義自增類型的id時,可以使...
摘要:對象關系映射,簡稱模式是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。在業務邏輯層和數據庫層之間充當了橋梁的作用。每個字段被指定為一個類屬性,每個屬性映射到一個數據庫列。字符類型,必須提供參數,表示字符長度。 對象關系映射(Object Relational Mapping,簡稱ORM)模式是一種為了解決面向對象與關系數據庫存在的互不匹配的現象的技術。 簡單的說,ORM是...
摘要:總結整個過程的難點在于獲取文件對象,從數據中取值然后在按取出,這樣我們就可以從后臺上傳文件,然后進行批量導入數據庫,其他數據格式只需要改和中的數據字段就可以 第一篇(從django后臺解析excel數據批量導入數據庫) 文章會在github中持續更新 作者: knthony github 聯系我 1.django 如何從后臺上傳excel中批量解析數據 要從django后臺導入...
摘要:本人年開發經驗,現就職于電信,因工作需要學習,記錄自己的學習記錄。 本人java10年開發經驗,現就職于電信,因工作需要學習python,記錄自己的學習記錄。后面也...
摘要:為了將代碼規范,約定俗成將視圖放置在項目或應用程序目錄中命名為文件中。必須接受字段表示字符串長度不能超過該值,默認的標簽最常用的。例,自動添加發布時間。以字符串的形式存在,默認最大長度,可以通過參數設置。用于保存通用唯一識別碼的字段。 MVC 大部分開發語言中都有MVC框架 MVC框架的核心思想是:解耦 降低各功能模塊之間的耦合性,方便變更,更容易重構代碼,最大程度上實現代碼的重...
閱讀 3267·2021-11-22 14:44
閱讀 1113·2021-11-16 11:53
閱讀 1264·2021-11-12 10:36
閱讀 699·2021-10-14 09:43
閱讀 3685·2019-08-30 15:55
閱讀 3399·2019-08-30 14:14
閱讀 1734·2019-08-26 18:37
閱讀 3410·2019-08-26 12:12