Python 如何为django应用程序设置图像上载根
我无法设置上载图像的根文件夹。上载映像位于名为api的django应用程序中 视图在图像上返回此链接: 然而,当我在那个链接上,我得到了错误,因为图像不在那个里 我在settings.py中设置:Python 如何为django应用程序设置图像上载根,python,django,Python,Django,我无法设置上载图像的根文件夹。上载映像位于名为api的django应用程序中 视图在图像上返回此链接: 然而,当我在那个链接上,我得到了错误,因为图像不在那个里 我在settings.py中设置: STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'static/') REST_FRAMEWORK = { 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAdminUser',
],
'PAGE_SIZE': 1
}
MEDIA_ROOT = os.path.join(BASE_DIR,STATIC_ROOT,'media')
MEDIA_URL = '/media/'
我在api/models.py中编写了以下代码:
from django.db import models
import uuid
def scramble_uploaded_filename(instance, filename):
extension = filename.split(".")[-1]
return "{}.{}".format(uuid.uuid4(), extension)
def filename(instance, filename):
return filename
# Create your models here.
class UploadImage(models.Model):
image = models.ImageField("Uploaded image",upload_to=scramble_uploaded_filename)
captcha_type = models.IntegerField("Image type")
views.py
from rest_framework import viewsets
from api.models import UploadImage
from api.serializers import UploadedImageSerializer
from rest_framework import authentication, permissions
from rest_framework.parsers import MultiPartParser,FormParser
import MySQLdb
class FileUploadViewSet(viewsets.ModelViewSet):
#create queryset view
permission_classes = (permissions.IsAuthenticated,)
queryset = UploadImage.objects.filter(id=1,user='auth.User')
serializer_class = UploadedImageSerializer
parser_classes = (MultiPartParser, FormParser,)
序列化程序.py
from rest_framework import serializers
from api.models import UploadImage # Import our UploadedImage model
class UploadedImageSerializer(serializers.ModelSerializer):
# current_user = serializers.HiddenField(default=serializers.CurrentUserDefault())
class Meta:
model = UploadImage
fields = ('id', 'image','captcha_type','created','user','result') #
有什么想法吗?根据您在OP下面的评论,假设您正在尝试将其部署到远程服务器: 首先要检查的是,您上传的图像实际上存在于路径[project root]/media/4a273bdf-564d-4dec-b657-43db27f04042.jpeg中 第二件需要检查的事情是,Nginx或Apache或[insert web server]是否正确地将请求路由到媒体目录,并将其发送到服务器上的正确位置 编辑1 这是Nginx配置文件的示例位置块,用于将请求从url www.example.com/media/filename_of_image.jpeg路由到/absolute/path/to/media/:
这应该放在服务器块中,在定义路径/的位置块之前,根据OP下面的注释假设您正试图将其部署到远程服务器: 首先要检查的是,您上传的图像实际上存在于路径[project root]/media/4a273bdf-564d-4dec-b657-43db27f04042.jpeg中 第二件需要检查的事情是,Nginx或Apache或[insert web server]是否正确地将请求路由到媒体目录,并将其发送到服务器上的正确位置 编辑1 这是Nginx配置文件的示例位置块,用于将请求从url www.example.com/media/filename_of_image.jpeg路由到/absolute/path/to/media/:
这应该放在一个服务器块中,在定义路径的位置块之前/Hi m8您所要做的就是编辑url.py添加这行,它应该可以工作
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
嗨,m8你所要做的就是编辑URL.py添加这行,它应该会工作
from django.conf.urls import include, url
from django.contrib import admin
from django.conf.urls.static import static
from django.conf import settings
urlpatterns = [
url(r'^admin/', admin.site.urls),
]+ static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
发布视图如何渲染图像和html没有html我使用的是rest\u框架。。我添加了模型、视图和序列化器,所以你发布的链接会显示什么?它会显示上传的图像。。url是图像上传的地方,但它不是。那么,你有什么可以在该url上为图像提供服务的呢?发布视图你是如何呈现图像和html的?没有html我正在使用rest\u框架。。我添加了模型、视图和序列化器,所以你发布的链接会显示什么?它会显示上传的图像。。url是图像上传的地方,但事实并非如此。你们有什么可以在那个url上提供图像?我使用的是Nginx。让我检查一下,我会给你们回复的。好的,所以路径在项目根目录中。。。文件夹介质与manage.py位于同一位置。jpeg在那里。所以,唯一要做的就是正确设置将请求路由到我的媒体目录。你知道怎么做吗?我在用Nginx。让我检查一下,我会给你们回复的。好的,所以路径在项目根目录中。。。文件夹介质与manage.py位于同一位置。jpeg在那里。所以,唯一要做的就是正确设置将请求路由到我的媒体目录。你知道怎么做吗?