一个基于flask的web应用诞生 记录用户账户登录状态(6)

以下是“一个基于flask的web应用诞生 记录用户账户登录状态(6)”的完整攻略:

1. 添加用户注销功能

在用户登录成功后,我们需要给出注销的入口。在html文件中添加以下代码,链接到注销路由:

{% if current_user.is_authenticated %}
<li class="nav-item">
  <a class="nav-link" href="{{ url_for('logout') }}">注销</a>
</li>
{% endif %}

app.py文件中,我们需要为注销添加一个路由。这个路由需要注销用户,并将其重定向到登录页面。添加如下代码:

@app.route('/logout')
def logout():
    logout_user()
    return redirect(url_for('login'))

2. 每个用户只能修改自己的资料

我们需要添加一个判断逻辑,如果当前访问的用户不是修改资料的用户,则无法进行修改。我们可以通过在edit_profile路由中传入要修改资料的用户ID来进行判断。

首先,在user.html文件中,在编辑按钮中添加一个参数来传递用户ID:

<a href="{{ url_for('edit_profile', id=user.id) }}" class="btn btn-sm btn-outline-secondary">编辑资料</a>

接着,在app.py文件的edit_profile路由中,将ID传递给User.update()方法,并进行身份判断。添加如下代码:

@app.route('/user/<int:id>/edit', methods=['GET', 'POST'])
@login_required
def edit_profile(id):
    user = User.query.get_or_404(id)
    # 只能修改自己的资料
    if current_user != user:
        abort(403)

    form = EditProfileForm(obj=user)
    if form.validate_on_submit():
        form.populate_obj(user)
        user.update()
        flash('资料已更新')
        return redirect(url_for('user', username=user.username))

    return render_template('edit_profile.html', form=form)

以上的修改完成后,用户只能修改自己的资料,其他用户的资料无法进行修改。

希望这个攻略对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一个基于flask的web应用诞生 记录用户账户登录状态(6) - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Flask表单与表单验证实现流程介绍

    下面我将对”Flask表单与表单验证实现流程介绍”进行详细讲解。 一、Flask表单 1.1 WTForms简介 WTForms是一个用于验证表单数据的Python库。使用它可以很简单地为你的Flask应用程序添加表单支持。它可以完成以下任务: 生成HTML渲染的表单 验证表单数据的完整性和正确性 在验证失败时,向用户显示错误消息 1.2 Flask-WTF…

    Flask 2023年5月15日
    00
  • Python Flask实现图片上传与下载的示例详解

    下面我来详细讲解一下“Python Flask实现图片上传与下载的示例详解”的完整攻略。 一、示例一:实现图片上传 1. 安装Flask 首先需要安装Flask,可以使用pip install flask命令进行安装。 pip install flask 2. 创建Flask应用 创建一个Python文件,比如叫做app.py,然后在里面写入以下代码: fr…

    Flask 2023年5月16日
    00
  • flask框架路由常用定义方式总结

    让我为你详细讲解一下“flask框架路由常用定义方式总结”的完整攻略。 什么是flask框架? Flask是一个基于 Python 语言的轻量级 Web 开发框架,使用 Werkzeug 作为 Web 服务器网关接口,使用 Jinja2 模板引擎,这两个库也都是 Flask 标配。它设计精简,易于扩展,使它成为很多 Web 开发者喜欢使用的框架之一。 什么是…

    Flask 2023年5月15日
    00
  • Python flask框架post接口调用示例

    下面是“Python Flask框架POST接口调用示例”的完整攻略: 1. 确保flask和requests已安装 在开始之前,需要确保flask和requests已安装。如果没有安装可以在命令行中使用以下命令进行安装: pip install flask pip install requests 2. 创建Flask应用程序 创建一个Python脚本ap…

    Flask 2023年5月15日
    00
  • 详解Python Flask框架的安装及应用

    下面是详解Python Flask框架的安装及应用攻略。 安装Flask框架 首先,我们需要安装Flask框架。你可以使用pip命令进行安装。在你的命令行终端中输入以下命令: pip install flask 这个命令会自动下载并安装Flask框架。如果出现类似”Successfully installed Flask-1.1.1 Jinja2-2.10.…

    Flask 2023年5月15日
    00
  • Flask框架的学习指南之用户登录管理

    标题:Flask框架的学习指南之用户登录管理 1.概述 Flask是一个非常流行的Python Web框架,灵活可扩展。在Web应用程序中,用户登录管理是必不可少的一项功能。Flask框架提供了快速构建用户认证和授权的工具。 2.安装Flask 在开始使用Flask之前,需要先安装Flask。可以使用pip来安装Flask: pip install Flas…

    Flask 2023年5月15日
    00
  • Python的Flask框架的简介和安装方法

    Flask是一种轻量级的Python web框架,它具有灵活性、简易性和可扩展性。它可以让你快速地创建web应用的原型并进行扩展。下面将介绍如何安装Flask框架及其两个简单的示例。 Flask框架的安装方法 首先,你需要安装pip。pip是一个Python包的管理器,它可以帮助我们很容易地安装、升级和删除Python包。可以通过在终端执行以下命令来安装pi…

    Flask 2023年5月15日
    00
  • flask框架自定义过滤器示例【markdown文件读取和展示功能】

    下面就对“flask框架自定义过滤器示例【markdown文件读取和展示功能】”进行详细讲解,包括其中涉及的两条示例说明。 什么是自定义过滤器? Flask框架提供了过滤器的功能,可以在试图中过滤模板变量的值。默认情况下Flask提供了一些常用的过滤器,如safe过滤器、striptags过滤器等,但是有些场景下需要自定义过滤器,这时候就需要使用到自定义过滤…

    Flask 2023年5月15日
    00
合作推广
合作推广
分享本页
返回顶部