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

django之對(duì)FileField字段的upload_to的設(shè)定方法

 更新時(shí)間:2019年07月28日 09:09:47   作者:Boyce_L  
今天小編就為大家分享一篇django之對(duì)FileField字段的upload_to的設(shè)定方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

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

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

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

# MyProject.settings.py 里面設(shè)置MEDIA_ROOT and MEDIA_URL

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

# models.py

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

2.使用strftime()

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

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

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

3.更加靈活的方式

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

# models.py

#讓上傳的文件路徑動(dòng)態(tài)地與user的名字有關(guān)
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之對(duì)FileField字段的upload_to的設(shè)定方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

  • Python爬蟲爬取新聞資訊案例詳解

    Python爬蟲爬取新聞資訊案例詳解

    這篇文章主要介紹了Python爬蟲爬取新聞資訊案例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python保存網(wǎng)頁圖片到本地的方法

    python保存網(wǎng)頁圖片到本地的方法

    這篇文章主要為大家詳細(xì)介紹了python保存網(wǎng)頁圖片到本地的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python爬蟲代理池搭建的方法步驟

    Python爬蟲代理池搭建的方法步驟

    這篇文章主要介紹了Python爬蟲代理池搭建的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Django中如何使用sass的方法步驟

    Django中如何使用sass的方法步驟

    這篇文章主要介紹了Django中如何使用sass的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python中的decorator的作用詳解

    python中的decorator的作用詳解

    這篇文章主要介紹了python中的decorator的作用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • python代碼編寫計(jì)算器小程序

    python代碼編寫計(jì)算器小程序

    這篇文章主要為大家詳細(xì)介紹了python代碼編寫計(jì)算器小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解

    命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解

    這篇文章主要介紹了命令行運(yùn)行Python腳本時(shí)傳入?yún)?shù)的三種方式詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • Python中使用__new__實(shí)現(xiàn)單例模式并解析

    Python中使用__new__實(shí)現(xiàn)單例模式并解析

    單例模式是一個(gè)經(jīng)典設(shè)計(jì)模式,簡(jiǎn)要的說,一個(gè)類的單例模式就是它只能被實(shí)例化一次,實(shí)例變量在第一次實(shí)例化時(shí)就已經(jīng)固定。 這篇文章主要介紹了Python中使用__new__實(shí)現(xiàn)單例模式并解析 ,需要的朋友可以參考下
    2019-06-06
  • django中使用memcached示例詳解

    django中使用memcached示例詳解

    這篇文章主要為大家介紹了django中使用memcached示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-06-06
  • Python如何在終端彩色打印輸出

    Python如何在終端彩色打印輸出

    大家好,本篇文章主要講的是Python如何在終端彩色打印輸出,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下
    2022-02-02

最新評(píng)論