问题描述
对不起,如果我做错了什么,我是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 (将#修改为@)