django中的media配置
阿新 • • 發佈:2020-12-25
media
django框架中使用者上傳檔案的存放位置
media在django中的配置
在專案根目錄下建立media資料夾
在settings.py檔案中配置MEDIA_ROOT,MEDIA_URL
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
在urls.py檔案中進行路由配置
from django.conf import settings from django.conf.urls.static import static urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
配置完成!
圖片上傳到指定的資料夾下,防止重名
我們可以在models.py中自己定義一個生成檔名的函式
def custom_upload_path(instance, filename): class_name = instance.__class__.__name__.lower() filename = filename.split('.')[0] + str(uuid.uuid4()) + "." + filename.split('.')[-1] date_str = "%s%s%s" % (datetime.now().year, datetime.now().month, datetime.now().day) return "{}/{}/{}".format(class_name + "s", date_str, filename)
在模型類中直接呼叫函式即可
img = models.ImageField(upload_to=custom_upload_path, null=True, blank=True, verbose_name='圖片')