我正在使用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)
但这只是重复而且是我希望命名卷可以帮助我避免:-)
我有以下输入
"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) 在我的 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) 我现在正在尝试将使用 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 是文件字段。正确的做法是什么?