Django-临时midi文件music21

问题描述

对不起,如果我做错了什么,我是Web应用程序开发的新手,我一直在与Django合作开发一个项目,希望我可以执行以下操作:

当用户单击按钮时,将生成Ajax请求(我使用的是纯Javascript)。

    const csrftoken = document.querySelector('[name=csrfmiddlewaretoken]').value;

    // Create new request add token 
    const generateRequest = new XMLHttpRequest();
    generateRequest.open('POST','/generate');
    generateRequest.setRequestHeader('X-CSRFToken',csrftoken);

    generateRequest.onload = () => {
        // Get url with the midi file,see below 
    };

    // Add the motif to send with the request
    const data = new FormData();
    data.append('motif',JSON.stringify(notes));

    // Send request

此请求将一些注释发送到生成旋律的服务器(Django)。

# Generate the melody based on the seed
@require_http_methods(["POST"])
def generate(request):

# See if method was post
if request.method == "POST":
    # Get the seed and other stuff...

    # Create a melody generator
    mg = MelodyGenerator()

    melody = mg.generate_melody(encoded_seed,...)

    mg.save_melody(melody)

    # Return the melody 
    return JsonResponse({"melody": melody},status=200)

服务器将旋律保存在我想成为临时文件的midi文件中

class MelodyGenerator:
# ... do some stuff

    def save_melody(...):
        path_dir = os.path.join(settings.MEDIA_ROOT,"temp_midis")
        file_path = os.path.join(path_dir,file_name)
        midi = stream.write(format,file_path)

因此用户可以收听midi(html模板):

<midi-player
   src = "url/path/to/temporaryfile"
   sound-font visualizer = "#myVisualizer">
</midi-player>
<midi-visualizer type = "staff" id = "myVisualizer"> </midi-visualizer>

我希望此文件是临时文件,以便不占用空间,也就是说,用户可以听音乐,可以选择下载音乐等,但是当他们离开页面时,该文件被删除,因此不会占用更多空间。

我怎么知道这个文件的URL,我想把它当作临时文件?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...