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 }}"这里面需要加引号,写的就是绝对路径