Django settings.py 的media路徑設置


轉載自:http://www.xuebuyuan.com/676599.html

 

在一個 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/ 訪問。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM