Django settings.py 的media路徑設置

Django settings.py 的media路徑設置

 

在一個 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/ 訪問。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章