Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 使用Django Nonl和文件传输应用程序上传到blobstore的图像_Google App Engine_Blobstore_Django Nonrel - Fatal编程技术网

Google app engine 使用Django Nonl和文件传输应用程序上传到blobstore的图像

Google app engine 使用Django Nonl和文件传输应用程序上传到blobstore的图像,google-app-engine,blobstore,django-nonrel,Google App Engine,Blobstore,Django Nonrel,我正在谷歌应用引擎中建立一个博客网站,使用django Nonl,我需要一种在博客帖子中存储和显示图像的方法 其想法是使用一个上传应用程序来上传特定文章等的图像,然后为IMDSRC使用绝对或相对URL 我正在使用django filetransfers上载图像() 问题是: 1) 是否有人使用谷歌应用程序引擎和django Unrel来主持他们的博客?如果是这样,您将如何存储图像以及将图像存储在何处?使用GAE Blobstore进行此用途是一种过度使用吗? 2) 对于图像URL,我使用的是fl

我正在谷歌应用引擎中建立一个博客网站,使用django Nonl,我需要一种在博客帖子中存储和显示图像的方法

其想法是使用一个上传应用程序来上传特定文章等的图像,然后为IMDSRC使用绝对或相对URL

我正在使用django filetransfers上载图像()

问题是: 1) 是否有人使用谷歌应用程序引擎和django Unrel来主持他们的博客?如果是这样,您将如何存储图像以及将图像存储在何处?使用GAE Blobstore进行此用途是一种过度使用吗? 2) 对于图像URL,我使用的是flie传输应用程序中设置的下载路径。如。 这是正确的吗?不使用.png扩展名或任何东西引用似乎有点奇怪。但这可能是引用blobstore中图像的方法

仍在学习Django和谷歌应用程序引擎的诀窍,因此,任何帮助都将不胜感激

谢谢你能

我在使用Blobstore和Django Norel时也有过类似的经验

对于你的第一个问题,Blobstore并不过分,我认为这实际上是你上传图片而不必更新整个项目并重新发布它的唯一方法。由于服务器的高复制性和安全性,GAE不允许您写入目录。这是一种权衡,因为随着需求的增加,可以自动启动所有服务器。如果您尝试执行任何涉及写入目录的操作,应用程序引擎将出错

我自己也在为你的第二个问题寻找更好的解决方案。我想能够引用自己的名字文件。我认为关键在于为“Upload”模型添加一个额外的属性,该属性在保存时设置为文件名。我还没有试过,但应该能用


更新:

这起作用了

模型如下:

class UploadModel(models.Model):
    title = models.CharField(max_length=64, blank=True)
    file = models.FileField(upload_to='uploads/%Y/%m/%d/%H/%M/%S/')
    filename = models.CharField(max_length=100, editable=False, null=True, blank=True)

    def save(self, *args, **kwargs):
        self.filename = self.file.name.rsplit('/', 1)[-1]
        super(UploadModel, self).save(*args, **kwargs)
以下是下载处理程序:

def download_handler(request, filename):
    upload = get_object_or_404(UploadModel, filename=filename)
    return serve_file(request, upload.file, save_as=True)
URL映射:

url(r'^file/(?P<filename>.+)$', 'cms.views.download_handler_filename', name='cms-download_file'),
url(r'^file/(?P.+)$,'cms.views.download_handler_filename',name='cms-download_file'),
完成此操作后,您可以按文件名访问该文件(这只是示例应用程序中的一个片段)。如您所见,“pk”已替换为“filename”属性:

{% url cms-download_file filename=upload.filename as fallback_url %}
<p><img src="{% firstof upload.file|public_download_url fallback_url %}"></p>
{%url cms-download_file filename=upload.filename作为回退_url%}


我一直在想的是让“public\u download\u url”与GAE Blobstore合作。如果其他人可以评论如何获得一个适当的公共支持来自动生成公共URL,我将不胜感激


Grant

这不是唯一的方法-您还可以将上传的图像存储在数据存储中。不过,使用blobstore是更好的方法。