我目前正在从事一个处理大量 iCalendar 文件的项目。在用户在我的网站上搜索他们的名字后,我希望他们可以选择将显示的事件添加到他们的手机日历中。我想象的方法是创建一个 .ics 文件,当用户单击它时,该文件将根据用户的名称开始下载。
所以到目前为止我所做的是一个 Django 视图,当按下“添加到日历”按钮时,该视图被呈现。然后视图将只获取查询的名称并获取其 ics_string 或日历数据。这是我到目前为止写的视图
def serve_calendar(request):
name = request.GET.get('name', '')
ics_string = get_calendar_details(name)
#the portion of code that i can't figure out
return response
我缺少的是如何将这个文件发送到客户端的机器上,而不需要在服务器上创建它。我使用 Django 库中的 io.StringIO 和 FileWrapeprs 找到了一些答案,但是它们对我不起作用。我发现的其他答案使用 X-SendFile 但这对我不起作用,因为它需要文件的路径并且我不希望在服务器上创建文件。
我目前正在使用 Python 3.7.4 64 位和 Django 版本 2.2.7