我做了一个简单的文件上传的网站, 文件上传之后会生成一个页面显示已经上传的文件,
现在想做一个删除的功能, 在每个文件名后面加上一个 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>
1
justinwu 2018-03-14 14:51:34 +08:00
好久没玩 flask 了,
调试下啊,看看后端对不对,自己发个请求测试下,推荐工具 postman。 看发送的请求对不对,把请求抓出来看看,浏览器自带 network 调试,也可以用 fiddler,wireshark 啥的。 业余人士,回复仅供参考。。。 |
2
boyxy120 2018-03-14 15:04:43 +08:00
你先判断一下 request.method
|
3
Linxing 2018-03-14 15:08:50 +08:00
你的 delfile 到底是给 post 用呢还是给 get 用呢
|
4
yangzhezjgs 2018-03-14 15:30:53 +08:00
先定位问题在哪,先找到是服务端的问题,还是 ajax 的问题
如果 print('in delfile')都没执行,先用 requests.get()一个请求,来确定路由函数有没有问题。 如果服务端没问题,那就肯定是 ajax 没正确发送 http 请求,再来找问题再哪。。 |
5
Beebird 2018-03-14 16:37:06 +08:00
浏览器开调试,在 ajax 的位置打断点看看。
|
6
LeeSeoung 2018-03-14 16:42:15 +08:00
首先 F12 看请求发出去没,再下一步定位。。
|
7
TestSmirk 2018-03-14 17:06:33 +08:00
请问一下楼主,{% for file_name, file_url in files.items() %} 这个名词叫啥.
|
8
woshichuanqilz OP |