Django settings.py 的media路徑設定

來源:互聯網
上載者:User

在一個 models 中使用 FileField 或 ImageField 需要以下步驟:

1. 在你的 settings 檔案中, 定義一個完整路徑給MEDIA_ROOT 以便讓 Django在此處儲存上傳檔案. (出於效能考慮,這些檔案並不儲存到資料庫.) 定義MEDIA_URL 作為該目錄的公用 URL. 要確保該目錄對 WEB 伺服器使用者帳號是可寫的.

2. 在你的 models.py 中添加 FileField 或 ImageField, 並確保定義了upload_to 選項,以告訴 Django 使用MEDIA_ROOT 的哪個子目錄儲存上傳檔案.

3. 你的資料庫中要儲存的只是檔案的路徑(相對於 MEDIA_ROOT). 要想得到這個檔案的路徑可以用.url方法。例如,如果models裡有一個取名為"photo"的ImageField,可以在Html模板裡通過{{object.photo.url}}得到該圖片的路徑。

settings.py 設定

媒體檔案的絕對路徑:
# Absolute path to the directory that holds media.
# Example: "/home/media/media.lawrence.com/"   
MEDIA_ROOT = 'D:/Python26/Lib/site-packages/django/bin/newproj/media'

媒體檔案的相對路徑:
# URL that handles the media served from MEDIA_ROOT.
# Example: "http://media.lawrence.com"
MEDIA_URL = '/site_media/' 

設定靜態檔案路徑
STATIC_PATH = 'D:/Python26/Lib/site-packages/django/bin/newproj/media'


urls.py 影射路徑

(r'^site_media/(?P<path>.*)$', 'django.views.static.serve',{'document_root': settings.STATIC_PATH}),
將 MEDIA_URL 的site_media 影射到 settings.STATIC_PATH

models.py 上傳圖片欄位設定

photo = models.ImageField('上傳圖片',upload_to='photos')
相當於傳到 D:/Python26/Lib/site-packages/django/bin/newproj/media/photos 目錄下,瀏覽時通過/site_media/photos/ 訪問。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.