Skip to main content
 首页 » 编程设计

python之无法从 Django Rest API 获取图像

2024年10月24日34xxx_UU

我正在学习 Django Rest Framework 并遇到了一些问题。

我有一个小型任务应用程序 API。

我可以在服务器上保存图像,但无法从 API 图像超链接获取图像。

我的模型.py

class Task(models.Model): 
    task_name = models.CharField(max_length=30) 
    task_desc = models.CharField(max_length=30) 
    image = models.ImageField(upload_to = 'pic_folder/', default = 'pic_folder/None/no-img.jpg') 

View .py

class TaskViewSet(viewsets.ModelViewSet): 
    queryset = Task.objects.all() 
    serializer_class = TaskSerializer 

序列化器.py

class TaskSerializer(serializers.HyperlinkedModelSerializer): 
    image = serializers.ImageField( 
            max_length = None, use_url=True 
        )    
    class Meta: 
        model = Task 
        fields = ('id','task_name','image') 

设置.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/' 

APP 结构:-

TaskAPI  (Base Dir) 
    TaskAPP 
     media 

我可以成功发出 POST 请求,它显示正确的图像链接,但是当我点击图像链接时,出现错误。

错误:- 请建议如何从链接中获取图像。

请您参考如下方法:

您没有在 urls.py 中包含 media url

from django.conf.urls.static import static 
from django.conf import settings 
 
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

参见 docs关于服务媒体和静态文件。