1. Django静态文件分类
Django的静态文件有两类,分别为static
和media
。
-
static
:用以存放:js、css、image -
media
:用以存放上传的文件或图片
2. 上传图片实战
django用
MEDIA_URL
和MEDIA_ROOT
处理media
2.1 创建media文件夹存放上传图片
mkdir media/test
2.2 修改setting.py文件
增加MEDIA_URL
和MEDIA_ROOT
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, "media").replace('\\','/')
2.3 修改urls.py文件
导入:
from django.conf.urls.static import static
from django.conf import settings
修改urlpatterns:
urlpatterns = [
url(r'^xadmin/', include(xadmin.site.urls)),
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
在本地调试需要将setting.py
文件中,DEBUG
设置为True
2.4 创建models.py
class Site(models.Model):
id = models.AutoField(primary_key=True)
image = models.ImageField(u'favicon',upload_to="test/")
注意:upload_to
选项
3. 生产服务器
使用nginx处理django静态文件,nginx.conf
文件media
配置如下:
location /media {
expires 30d;
autoindex on;
add_header Cache-Control private;
alias /opt/project/media/;
}