Flask Web 开发 博客文章_5
来源:互联网 发布:验证身份证18位数的js 编辑:程序博客网 时间:2024/05/22 03:32
这章节有点像用户认证那章节,知识点比较密集,终于最后一环节了
前面已经有了文章的固定url,那有时候用户或者管理员需要编辑文章,该怎么做呢?
前端的显示上面,肯定是有一个edit按钮的,后台也肯定需要一个特定的页面以供修改
首先先来编辑前端的显示吧,一般都是点编辑按钮以后,进入可以重新修改文章的页面,也没什么特别的,关键是输入文本框
所以新建一个edit_post.html
浏览器抬头和主题修改一下,再引入表单,而表单就是原来那个pagedown的表单
{% extends "base.html" %}{% import "bootstrap/wtf.html" as wtf %}{% block title %}Flasky - Edit Post{% endblock %}{% block page_content %}<div class = "page-header"><h1>Edit Post</h1></div><div>{{wtf.quick_form(form)}}</div>{% endblock %} {% block scripts %}{{super()}}{{pagedown.include_pagedown()}}{% endblock %}
前段做好,后端需要一个路由来分配,如下,隐居每篇文章的id来进行url的定义
如果当前用户不是作者本人,且当前用户没有管理员的权限,则报错403
其他情况允许修改
@main.route('/edit/<int:id>',methods=['GET','POST'])@login_requireddef edit(id):post = Post.query.get_or_404(id)if current_user != post.author and not current_user.can(Permission.ADMINISTER):abort(403)form = PostForm()if form.validate_on_submit():post.body = form.body.datadb.session.add(post)flash('The post has been updated.')return redirect(url_for('post',id = post.id))form.body.data = post.bodyreturn render_template('edit_post.html',form = form)
最后,在_posts.html这个显示所有文章列表的宏里面,也需要修改代码,以添加edit按钮和管理员的edit按钮
<div class="post-footer">....{% if current_user == post.author %}<a href = "{{ url_for('.edit',id = post.id)}}"><span class = "label label-primary">Edit</span></a>{% elif current_user.is_administrator() %}<a href = "{{ url_for('.edit',id = post.id)}}"><span class = "label label-danger">Edit [Admin]</span></a>{% endif %}
最后,来看一下效果图
作为管理员,我在页面上可以看到edit按钮和edit admin的按钮,然后按进去以后,就会导入到编辑页面了,可以修改页面内容
0 0
- Flask Web 开发 博客文章_5
- Flask Web 开发 博客文章
- Flask Web 开发 博客文章_2
- Flask Web 开发 博客文章_3
- Flask Web 开发 博客文章_4
- Flask Web 开发 用户认证_5
- 《flask web开发》第11章 博客文章发布表单无法显示的解决方案
- Flask(11)-博客文章
- flask web开发创建虚拟博客文章数据bug AttributeError: 'NoneType' object has no attribute 'encode'的解决
- [心得]基于Flask技术的web博客开发总结
- 用flask开发个人博客(37)—— 使用Flask-pagedown实现博客文章预览的功能
- 用flask开发个人博客(36)—— 使用SQLAlchemy对博客文章进行分页
- Flask Web开发
- flask-web开发扩展
- flask web开发
- Flask Web 开发 数据库
- Flask Web 开发 测试
- Flask Web开发选型
- 【Data Structure】------类型定义
- mysql的约束
- C#控制台基础 自定义类不同实例之间的赋值(引用传递的一个示例)
- 欢迎使用CSDN-markdown编辑器
- Linux学习笔记之RHEL6修改root密码
- Flask Web 开发 博客文章_5
- 《江湖X》开发笔谈——服务器技术架构
- RuntimeError 可能发生的情况
- 将构件发布到maven
- 调整数组顺序使奇数位于偶数前面
- 一个有广告的纸杯子的测试用例设计(黑盒测试用例设计)
- C#控制台基础 C#中引用类型有哪些
- 中介者模式
- Android Support Design库之AppBarLayout