我做了一个简单的文件上传的网站, 文件上传之后会生成一个页面显示已经上传的文件,
现在想做一个删除的功能, 在每个文件名后面加上一个 button, 点击可以删除这个文件。
我的想法就是用 request 把文件的 id 传上去, id 包括对应的文件名, 然后后端的 flask 处理这个文件就行了。
html 里面使用了 jinja, 现在的问题我在删除文件的链接里面 delfile print 一个提示, 但是这个提示在点击 button 之后并没有出现也就是说, 这个 delfile 没有走到, 请问是为什么?
这个是文件名 + button 的 html 代码。
<ul>
{% for file_name, file_url in files.items() %}
<li><a id="{{ file_name }}_url" href="{{ file_url }}">{{ file_name }}</a>  
<button id="{{ file_name }}_btn" class="delbtn">删除</button></li>
{% endfor %}
</ul>
python:
@app.route('/delfile', methods=['GET', 'POST'])
def delfile():
print('in delfile')
return 'hello world'
html :
{% extends "layout.html" %}
{% block body %}
<div>
{% if session.logged_in %}
<h1><p>{{ session.cur_username }} 已经登录</p></h1>
{% endif %}
<br />
</div>
<div>
<h2>已经使用的空间 <b>{{ used_space }}</b></h2>
</div>
<br />
<div>
<form method=post enctype=multipart/form-data>
<input type=file name=file>
<input type=submit value=上传>
</form>
</div>
<div>
<br /><br />
</div>
<ul>
{% for file_name, file_url in files.items() %}
<li><a id="{{ file_name }}_url" href="{{ file_url }}">{{ file_name }}</a>  
<button id="{{ file_name }}_btn" class="delbtn">删除</button></li>
{% endfor %}
</ul>
{% endblock %}
<script type=text/javascript>
$(function() {
$('.delbtn').click(function(){
$.ajax({
url: '/delfile',
data:{
filename: this.id
},
dataType: 'JSON',
type: 'GET',
success: function(data){
$("#result");
}
});
});
});
</script>
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.