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/ 访问。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值