django提供了兩種字段類型models.FileField與models.ImageField,用於保存上傳文件與圖
象.這兩類字段提供了一個參數'upload_to',用於定義上傳文件保存的路徑(完整的路徑為settings.MEDIA_ROOT + upload_to).
在設置符文本編輯器的時候設置了upload.py上傳文件的代碼,
還需要在settings里面進行設置,#自定義用戶model
AUTH_USER_MODEL = 'blog.User'
avatar = models.ImageField(upload_to='avatar/%Y/%m', default='avatar/default.png', max_length=200, blank=True, null=True, verbose_name='用戶頭像')
ImageField是圖像字段upload_to是上傳路徑 default默認圖片
需要在settings里面設置上傳路徑
上傳文件
KinderEditor沒有提供python的上傳文件的接口,所以需要自己進行配置
固定上傳的目錄為uploads
url(r"^uploads/(?P<path>.*)$", \ "django.views.static.serve", \ {"document_root": settings.MEDIA_ROOT,}),
uploads 是說明這是一個路由的地址,
(?P<path>.*)$"這里可以是任意字符,
"django.views.static.serve"是調用django里面的server方法
"
document_root": settings.MEDIA_ROOT,這是對應路徑
avatar = models.ImageField(upload_to='avatar/%Y/%m', default='avatar/default.png', max_length=200, blank=True, null=True, verbose_name='用戶頭像')
upload_to
='avatar/%Y/%m'自定義上傳路徑,上傳到指定文件
步驟:
在settings.py文件里面進行設置
MEDIA_URL = '/uploads/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads')
創建uploads文件夾
在url文件當中引入settings
from
django.conf
import
settings
url(r"^uploads/(?P<path>.*)$", \ "django.views.static.serve", \ {"document_root": settings.MEDIA_ROOT,}),
avatar
=
models.ImageField(upload_to
='avatar/%Y/%m',在models里面已經設置了上傳路徑,是在settings里面設置的路徑下面,這里寫的是avatar/年/月 存儲 http://localhost:8000/uploads/avatar/2015/12/mamao.jpg 因為在url里面有設置,所以可以直接在輸入url也可以訪問到
廣告:
<img id="slide-img-{{ ad.id }}" src="uploads/{{ ad.image_url }}"圖片的src目前有三種情況 1:絕對路徑 2:靜態文件的相對路徑 <img id="slide-img-1" src="{% static 'images/a1.jpg' %}" alt="" /> 3:上傳文件的路徑
<img id="slide-img-{{ ad.id }}" src="uploads/{{ ad.image_url }}" 直接寫uploads文件夾加上傳文件地址相當於就是絕對路徑
src="../uploads/{{ ad.image_url }}"這里面需要加引號,寫的就是絕對路徑