当前位置: 首页 > 知识库问答 >
问题:

Django设计:存储和检索文本文件

闾丘朗
2023-03-14

在我的应用程序中,我有一个绑定到button onclick事件的脚本,可以动态生成文本文件。这些文件不太大(约3000行),但数据流入可能很慢(有时需要30分钟才能捕获所有流式数据)。一旦这个过程完成,我需要存储这个文件,以便用户可以下载它。我还将有文本文件生成从以前的实例,这个点击事件,以及需要区分它们。

最好的方法是什么?我可以在数据库中存储这样大小的文本文件,然后检索它吗?我应该只存储一个存在于其他地方的文本文件的路径,但在这种情况下,它将存储在哪里,如何检索?如果存储在数据库中,主键是否足以提取我想要的文本文件?

谢谢

共有1个答案

穆季萌
2023-03-14

如果您希望能够搜索这些文件的内容,那么将它们存储在数据库中并不是一个糟糕的主意,但否则您可能应该将它们存储在文件系统中。

在这两种情况下,您都希望创建一个模型来保存有关文件的信息:

class TextFile(models.Model):
    user = models.ForeignKey(User, related_name='text_files')

    # if storing in database
    content = models.TextField() 

    # if storing in filesystem
    content = models.FileField(storage=FileSystemStorage(location='/path/to/files'))

然后,您可以为特定用户创建文件列表视图,如下所示:

@login_required
def file_list(request):
    files = TextFile.objects.filter(request.user)
    return render(request, 'file_list.html', {'files': files})

以及服务文件本身的视图:

@login_required
def servr_file(request, file_id):
    file = get_object_or_404(TextFile, user=request.user, pk=file_id)

    # if storing in database
    return HttpResponse(file.content)

    # if storing in filesystem
    return HttpResponse(file.content.read())
 类似资料:
  • 我有一系列存储在特定标记标准中的文件,当这些文件组合在一起时,就构成了一整卷文本。文本有多种不同的语言,每个文件都是该语言的副本。 为了通过web应用程序存储、检索并向潜在的许多用户显示这些信息,我需要实现最合适的方法。目前我的思路是: 将文件转换为XML(标记语言的设计目的是使其易于实现),然后在用户想要查看该部分时加载相关文件。我使用的是Rails和Ember。js显示结果,因此(我认为)要求

  • 问题内容: 我正在尝试检索过去一年的文档,每个文档都放入1个月宽的存储桶中。我将为每个1个月的存储时段提取文档,然后进一步分析它们(超出我的问题范围)。从描述中看来,“桶聚合”似乎是可行的方法,但是在“桶”响应中,我仅获得每个桶中的文档计数,而不是原始文档本身。我想念什么? GET命令 结果输出 问题答案: 您快到了,您只需要添加一个子聚合即可为每个存储桶检索一些文档:

  • 本文向大家介绍Kafka 高效文件存储设计特点?相关面试题,主要包含被问及Kafka 高效文件存储设计特点?时的应答技巧和注意事项,需要的朋友参考一下 (1).Kafka 把 topic 中一个 parition 大文件分成多个小文件段,通过多个小文件段,就容易定 期清除或删除已经消费完文件,减少磁盘占用。 (2).通过索引信息可以快速定位 message 和确定 response 的最大大小。

  • 本文向大家介绍Kafka 高效文件存储设计特点相关面试题,主要包含被问及Kafka 高效文件存储设计特点时的应答技巧和注意事项,需要的朋友参考一下 Kafka把topic中一个parition大文件分成多个小文件段,通过多个小文件段,就容易定期清除或删除已经消费完文件,减少磁盘占用。 通过索引信息可以快速定位message和确定response的最大大小。 通过index元数据全部映射到memor

  • 问题内容: 我想存储值并从Java HashMap中检索它们。 这是我到目前为止所拥有的: 我想从HashMap中检索所有键和值作为Java集合或实用程序集(例如)。 我知道只要知道密钥就可以获取值,例如: 有没有办法检索键值作为列表? 问题答案: Java Hashmap键值示例:

  • 我想存储值并从Java HashMap中检索它们。 这是我目前所拥有的: 我想从HashMap中检索所有键和值,作为Java集合或实用程序集(例如,LinkedList)。 我知道如果我知道键,我可以得到值,如下所示: 有没有办法以列表的形式检索键值?