相关疑难解决方法(0)

Docker Compose - 在多个容器之间共享命名卷

我正在使用docker-compose和v3.我正在尝试在docker中安装一个卷:

./appdata:/appdata

我希望将其作为卷,然后从多个容器引用该卷.的卷配置参考仅示出了data-volume:作为命名体积,用没有值,因此它不会像以上.

services:

    nginx:
        build: ./nginx/
        ports:
            - 80:80
        links:
            - php
        volumes:
            - app-volume

    php:
        build: ./php/
        expose:
            - 9000
        volumes:
            - app-volume

volumes:
     app-volume: ./appdata:/appdata
Run Code Online (Sandbox Code Playgroud)

这给了我:

错误:在文件'./docker-compose.yml'中,卷'app-volume'必须是映射而不是字符串.

显然我知道我需要更改volumes键/值对,但我不知道如何更改它以便我可以在服务之间共享卷.

我也检查过,volumes_from但这实际上只允许从其他容器继承.我看到有人volumes_from在另一个包含他们想要的映射的容器上使用,但是command: true设置为容器从未实际运行,这对我来说就像是一个黑客.

我怎样才能做到这一点?


注意,我确实有以下工作:

nginx:
    volumes:
        - ./appdata:/appdata
php:
    volumes:
        - ./appdata:/appdata
Run Code Online (Sandbox Code Playgroud)

但这只是重复而且是我希望命名卷可以帮助我避免:-)

docker docker-compose

69
推荐指数
4
解决办法
5万
查看次数

在django文件字段中保存base64图像

我有以下输入

"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA7YAAAISCAIAAAB3YsSDAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAA5JxJREFUeNrsnQl4FEX6xqcJJEAS7ivhBkMAQTSJ4h0QEQ+I90rAc1cOL3QBXXV1AV1dVwmrsCqQ9VwJ6HoC7oon0T8iEkABwRC5IeE+kkAIkPT/nfmSmprunskk5CDw/p55hu7qOr76api8........"
Run Code Online (Sandbox Code Playgroud)

我想将此文件保存在文件字段中.我能做什么?

models.py

class SomeModel(models.Model):
    file = models.FileField(upload_to=get_upload_report)
    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

我正在努力做到这一点

def get_file(data):
    from django.core.files import File
    return File(data)
Run Code Online (Sandbox Code Playgroud)

并将返回文件保存到模型实例

somemodel.file = get_file(image_base64_data)
Run Code Online (Sandbox Code Playgroud)

但它会出现以下错误

AttributeError at /someurl/

'File' object has no attribute 'decode'
Run Code Online (Sandbox Code Playgroud)

python django image filefield

32
推荐指数
3
解决办法
2万
查看次数

Django:生成一个 CSV 文件并将其存储到 FileField 中

在我的 Django 视图文件中,我需要从元组列表生成一个 CSV 文件,并将该 CSV 文件存储到我的模型的 FileField 中。

class Bill(models.Model):
    billId = models.IntegerField()
    bill = models.FileField(upload_to='bills')
Run Code Online (Sandbox Code Playgroud)

我在这个网站上搜索,发现了一些帖子,例如Django - 如何创建文件并将其保存到模型的 FileField?,但解决方案可以帮助我。

我需要将CSV文件存储在'media/bills/'文件夹中,我希望CSV文件可以与数据库中的Bill对象一起删除。

我尝试了以下代码,但无法满足我的要求。对于每个文件,它将生成两个文件“output.csv”和“output_xxesss.csv”。通过调用'Bill.objects.all().delete()'不能删除这两个文件。

path = join(settings.MEDIA_ROOT, 'bills', 'output.csv')
print path
f = open(path, 'w+b')
f.truncate()
csvWriter = csv.writer(f)
csvWriter.writerow(('A', 'B', 'C'))
for r in rs:
    print r
    csvWriter.writerow(convert(r))

bill = Bill()
bill.billId = 14
bill.bill.save('output.csv', File(f))
bill.save()
Run Code Online (Sandbox Code Playgroud)

谢谢

我尝试了以下代码,但无法通过调用“Bill.objects.all().delete()”来删除文件。

bill = Bill()
bill.billId = 14
bill.bill.name = 'bills/output.csv'
bill.save()
Run Code Online (Sandbox Code Playgroud)

python csv django filefield

7
推荐指数
2
解决办法
2905
查看次数

将渲染的 pdf 文件保存到模型字段 Django

我现在正在尝试将使用 HTML 呈现的 pdf 文件保存到模型字段,它会抛出此错误。

强制转换为 Unicode:需要字符串或缓冲区,已找到实例

这是代码

def save_to_pdf(template_src, context_dict, pk):
    import ipdb; ipdb.set_trace()
    instance = get_object_or_404(
        Project.objects.filter(pk=pk, is_deleted=False))
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = StringIO.StringIO()
    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("ISO-8859-1")), result,link_callback=fetch_resources)
    pdfnew=file(pdf)
    instance.structural_info.save('structure.pdf',pdfnew)
    return True
Run Code Online (Sandbox Code Playgroud)

Structured_info 是文件字段。正确的做法是什么?

python pdf django file django-models

3
推荐指数
1
解决办法
7379
查看次数

标签 统计

django ×3

python ×3

filefield ×2

csv ×1

django-models ×1

docker ×1

docker-compose ×1

file ×1

image ×1

pdf ×1