亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

django之如何設定FileField字段的upload_to方法

發布時間:2021-08-18 14:23:18 來源:億速云 閱讀:146 作者:小新 欄目:開發技術

這篇文章主要介紹django之如何設定FileField字段的upload_to方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

用django開發,經常要處理用戶上傳的文件, 比如user模型里面如果又個人頭像的字段 ImageField等等,而django在FielField字段(包括ImageField)的支持和擴展是做的很好的,首先一個問題,是上傳的文件,django是放到哪里去了,(note: 文件流是不會放到數據庫里面的,該字段在數據庫中只存儲路徑),django提供了upload_to屬性

以下介紹upload_to的具體使用方法

1.最直接的方式,硬編碼路徑

# MyProject.settings.py 里面設置MEDIA_ROOT and MEDIA_URL

MEDIA_ROOT = os.path.join(BASE_DIR, 'upload/')
MEDIA_URL = '/upload/' #這個是在瀏覽器上訪問該上傳文件的url的前綴

# models.py

class User(models.Model):
 avatar = ImageField(upload_to = 'avatar/')
 #實際的路徑就是 MEDIA_ROOT/avatar/filename
 #所以可以用uoload_to來指定文件存放的前綴路徑

2.使用strftime()

如果覺得以上方式太僵硬,萬一文件重名了,那就會有各種問題了,為了避免重名,django在upload_to上內置了strftime()函數

# models.py
class User(models.Model):
 avatar = ImageField(upload_to = 'avatar/%Y/%m/%d/')

這樣子的方式,%Y、%m、%d分別表示年、月、日

3.更加靈活的方式

當然,如果覺得只是避免文件路徑重名,還是不能滿足你,其實,django還允許你重寫一個upload_to函數,重定義上傳文件的路徑前綴

# models.py

#讓上傳的文件路徑動態地與user的名字有關
def upload_to(instance, fielname):
 return '/'.join([MEDIA_ROOT, instance.user_name, filename])

class User(models.Model):
 avatar = ImageField(upload_to = upload_to)
 user_name = CharField(max_length = 250)

以上是“django之如何設定FileField字段的upload_to方法”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武陟县| 平远县| 宁夏| 巴中市| 祥云县| 修武县| 成安县| 庄浪县| 霞浦县| 大埔县| 西乌| 嘉荫县| 监利县| 太白县| 湟中县| 宝山区| 嘉祥县| 濮阳县| 濉溪县| 灵宝市| 泗阳县| 金湖县| 桦川县| 黑龙江省| 巴林左旗| 内江市| 高青县| 宿迁市| 饶阳县| 安宁市| 章丘市| 奎屯市| 永康市| 米泉市| 长乐市| 岳池县| 高阳县| 平顶山市| 五寨县| 昌江| 安丘市|