Python Flask: 实现编辑笔记功能
来自CloudWiki
代码
# 编辑笔记 @app.route('/edit_article/<string:id>', methods=['GET', 'POST']) @is_logged_in def edit_article(id): db = MysqlUtil() # 实例化数据库操作类 fetch_sql = "SELECT * FROM articles WHERE id = '%s' and author = '%s'" % (id,session['username']) # 根据笔记ID查找笔记信息 article = db.fetchone(fetch_sql) # 查找一条记录 # 检测笔记不存在的情况 if not article: flash('ID错误', 'danger') # 闪存信息 return redirect(url_for('dashboard')) # 获取表单 form = ArticleForm(request.form) if request.method == 'POST' and form.validate(): # 如果用户提交表单,并且表单验证通过 # 获取表单字段内容 title = request.form['title'] content = request.form['content'] update_sql = "UPDATE articles SET title='%s', content='%s' WHERE id='%s' and author = '%s'" % (title, content, id,session['username']) db = MysqlUtil() # 实例化数据库操作类 db.update(update_sql) # 更新数据的SQL语句 flash('更改成功', 'success') # 闪存信息 return redirect(url_for('dashboard')) # 跳转到控制台 # 从数据库中获取表单字段的值 form.title.data = article['title'] form.content.data = article['content'] return render_template('edit_article.html', form=form) # 渲染模板
模板
{% extends 'layout.html' %} {% block body %} <h1>编辑笔记</h1> {% from "includes/_formhelpers.html" import render_field %} <form method="POST" action=""> <div class="form-group"> {{ render_field(form.title, class_="form-control") }} </div> <div class="form-group"> {{ render_field(form.content, class_="form-control", id="editor") }} </div> <p><input class="btn btn-primary" type="submit" value="Submit"> </form> <script src="//cdn.ckeditor.com/4.11.2/standard/ckeditor.js"></script> <script type="text/javascript"> CKEDITOR.replace('editor') </script> {% endblock %}