django DefaultFileSystem Storage使用方法


官方文檔介紹:
https://docs.djangoproject.com/en/3.1/ref/files/storage/

源碼解讀:

from django.core.files.storage import FileSystemStorage

 

 如果定義模型ImageField()

img=models.ImageField()

 

 



 

如果上傳圖片需要安裝Pillow

pip install Pillow

設置

1、首先在settings.py中定義MEDIA_ROOT與MEDIA_URL。例如:

MEDIA_ROOT = os.path.join(BASE_DIR, "files") MEDIA_URL = "/files/" 

files可以是項目根目錄的任何一個文件夾

2、在urls.py的urlpatterns中,設置訪問文件的url

from django.views.generic import TemplateView url(r'^files/(?P<path>.*)$', serve, {"document_root": settings.MEDIA_ROOT}) 

?P<path>代表這一塊的內容將作為參數path傳給serve方法

serve方法是django自帶的處理靜態文件的方法

document_root是必須提供的文件位置

注意如果文件放在url注冊的document_root之外,前端是不能訪問到這些文件的

models.py

file = models.FileField()

  1. 定義upload_to="background/"

    表示上傳的文件將會存在$MEDIA_ROOT/background/下

  2. ImageField和FileField實際上是CharFields,所以可以設置blank=True

serializers.py

正常寫一個ModelSerializer

class FileSerializer(serializers.ModelSerializer): class Meta: model = File fields = "__all__" 

效果

寫完view中的邏輯和注冊路由后,訪問對應的接口可以看到FileField字段是一個上傳文件的按鈕

上傳文件后,該字段會返回可以訪問文件的url


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM