Python Flask: 实现删除笔记功能(无数据库版)
来自CloudWiki
python代码
manage.py:
# 删除笔记 @app.route('/delete_article/<string:id>', methods=['GET', 'POST']) @is_logged_in def delete_article(id): # 获取表单字段内容 #9,ansible学习,zhangsan,2022-12-30 16:52:59,ansible是一个有用技术 line_list = [] with open('sample.csv',"r") as fr: line_list = fr.readlines() for i in range(0,len(line_list)): #文件对象可以直接迭代 #print(line) r = line_list[i].split(",") if r[0] !=id: continue else: line_list.pop(i)#删除第i行内容 break; with open('sample.csv',"w") as fw: fw.writelines(line_list) #fw.write("123") flash('删除成功', 'success') # 闪存信息 return redirect(url_for('dashboard')) # 跳转到控制台
html模板
修改dashboard.html模板,特别是删除按钮,添加上链接地址:
<td> <form action="{{url_for('delete_article', id=article.id)}}" <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="Delete" class="btn btn-danger"> </form> </td>
修改后的代码:
<html> <head> <meta charset="utf-8"> <title>读书笔记</title> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <link rel="stylesheet" href="/static/css/style.css"> <script src="https://cdn.bootcss.com/jquery/2.2.4/jquery.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> </head> <body> <nav class="navbar navbar-default"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="/">学习笔记</a> </div> <div id="navbar" class="collapse navbar-collapse"> <ul class="nav navbar-nav"> <li><a href="/">主页</a></li> <li><a href="/articles">笔记</a></li> <li><a href="/about">关于</a></li> </ul> <ul class="nav navbar-nav navbar-right"> <li><a>欢迎 {{session.username}}</a></li> <li><a href="/logout">退出</a></li> </ul> </div><!--/.nav-collapse --> </div> </nav> <div class="container"> <h1>控制台 <small> 欢迎 {{session.username}}</small></h1> <a class="btn btn-success" href="/add_article"> 添加笔记 </a> <hr> <table class="table table-striped"> <tr> <th>ID</th> <th>标题</th> <th>作者</th> <th>日期</th> <th></th> <th></th> </tr> {% for article in articles %} <tr> <td>{{article.id}}</td> <td>{{article.title}}</td> <td>{{article.author}}</td> <td>{{article.update_date}}</td> <td><a href="edit_article/{{article.id}}" class="btn btn-default pull-right">Edit</a></td> <td> <form action="{{url_for('delete_article', id=article.id)}}" <input type="hidden" name="_method" value="DELETE"> <input type="submit" value="Delete" class="btn btn-danger"> </form> </td> </tr> {% endfor %} </table> <!-- Footer --> <footer class="page-footer font-small blue" style="margin-top: 50px"> <!-- Copyright --> <div class="footer-copyright text-center py-3"> Copyright ©2007-2019 <a href="http://www.mingrisoft.com">明日科技有限公司</a> All Rights Reserved 吉ICP备10002740号-2 吉公网安备22010202000132 </div> <!-- Copyright --> </footer> <!-- Footer --> </body> </html>