Flask - 用户信息修改

文件上传

  • 上传的图片是 FileStorage
  • 属性 :
    • filename : 用户获取文件的名字
  • 方法 :
    • save(保存路径)

secure_filename

  • 转换为安全的文件名。
  • 示例:
>>> secure_filename("My cool movie.mov")
    'My_cool_movie.mov' 
>>> secure_filename("../../../etc/passwd")
    'etc_passwd'

配置头像的上传目录

settings.py

# 项目路径
    BASE_DIR = os.path.dirname(os.path.abspath(__file__))
    # 静态文件夹路径
    STATIC_DIR = os.path.join(BASE_DIR, 'static')
    # 模板文件路径
    TEMPLATE_DIR = os.path.join(BASE_DIR, 'templates')
    # 头像文件路径
    UPLOAD_ICON_DIR = os.path.join(STATIC_DIR, 'upload/icon')

用户修改

views.py

# 修改用户
@user_bp.route('/change', methods=['GET', 'POST'])
def user_change():
    if request.method == 'POST':
        username = request.form.get('username')
        phone = request.form.get('phone')
        email = request.form.get('email')
        # 获取头像, 使用request.files
        icon = request.files.get('icon')
        # 查询手机号码
        users = User.query.all()
        for user in users:
            if user.phone == phone:
                # 说明数据库以及存在此号码
                return render_template('user/center.html', user=g.user, msg='此号码已被注册')
        # 获取上传的图片的名字
        icon_name = icon.filename
        # 获取文件的扩展名
        suffix = icon_name.rsplit('.')[-1]
        if suffix in ALLOWED_EXTENSIONS:
            # 安全的文件名
            icon_name = secure_filename(icon_name)
            # 文件的上传路径
            file_path = os.path.join(Config.UPLOAD_ICON_DIR, icon_name)
            # 保存文件
            icon.save(file_path)
            user = g.user
            user.username = username
            user.phone = phone
            user.email = email
            # 数据库里的文件路径
            path = 'upload/icon/'
            user.icon = os.path.join(path, icon_name)
            db.session.add(user)
            db.session.commit()
            return redirect(url_for('user.center'))
        else:
            return render_template('user/center.html', user=g.user, image_msg='扩展名必须是:jpg,png,gif,bmp')
    return render_template('user/center.html', user=g.user)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: J-Flash v4.4 是一个用于嵌入式系统开发的工具软件。它是由SEGGER公司开发的,旨在帮助开发人员简化和加速嵌入式系统的编程和调试过程。 J-Flash v4.4 提供了一个集成开发环境(IDE),使开发人员能够更轻松地编写、调试和下载代码到嵌入式设备中。它支持多种处理器架构,包括ARM和RISC-V等。此外,它还提供了丰富的调试功能,可以通过串行线连接到目标设备,并在实时调试过程中监视和控制目标设备的状态。 除了编程和调试功能外,J-Flash v4.4 还具有烧录(Flashing)功能,可以快速、可靠地将程序下载到嵌入式设备的非易失性存储器中。它支持多种烧录器连接接口,如JTAG、SWD和SPI等。此外,它还支持各种芯片厂商的烧录算法,可以适用于不同类型的嵌入式系统。 J-Flash v4.4 还具有易于使用的用户界面,可供用户轻松配置和操作。它提供了简化的向导和步骤,让开发人员能够快速上手使用。无论是初学者还是经验丰富的专业人士,都可以通过该工具轻松地完成编程、调试和烧录的任务。 总之,J-Flash v4.4 是一款功能强大的嵌入式系统开发工具软件,提供了编程、调试和烧录等多种功能,可帮助开发人员更高效地开发和调试嵌入式系统。无论是学术研究、产品开发还是生产制造,J-Flash v4.4 都是一个非常有价值的工具。 ### 回答2: J-Flash是由SEGGER开发的一款用于编程和调试闪存器件的软件工具。v4.4是J-Flash的版本号,表示该软件的第4.4个版本。 J-Flash具有强大且易于使用的功能,适用于各种不同类型的闪存器件。用户可以通过J-Flash来编程和擦除闪存器件中的数据,还可以对闪存器件进行校验,读取和写入操作。 J-Flash支持多种通信接口,包括JTAG、SWD和SPI等。用户可以根据自己的需求选择合适的接口来与目标器件进行通信。 此外,J-Flash还提供了快速编程模式和批量操作功能,可以提高编程速度和效率。用户可以通过设置参数来优化编程操作,例如设置编程速度、擦除方式、校验方法等。 J-Flash还具有友好的用户界面,可以通过图形化界面来进行操作,同时还支持命令行模式,方便用户进行自动化操作。 总的来说,J-Flash v4.4是一款功能强大、易于使用的编程和调试闪存器件的软件工具。它可以满足用户各种不同的需求,提供了丰富的功能和灵活的参数设置,是开发人员在闪存编程和调试方面的好助手。 ### 回答3: j-flash v4.4 是一种用于嵌入式系统开发的软件工具。它是由SEGGER公司开发的,并且被广泛应用于各种微控制器和处理器的调试和编程任务中。 j-flash v4.4 提供了一个用户友好的界面,使得开发者可以轻松地对目标设备进行调试和编程。它支持多种不同的调试接口,包括JTAG、SWD和SPD等接口。通过这些接口,开发者可以直接与目标设备通信,读取和修改设备的内存和寄存器的值以及执行单步调试操作。 此外,j-flash v4.4 还具有快速编程的功能,从而大大缩短了程序烧录的时间。它可以自动检测目标设备,并根据设备的特征自动配置相关的参数,无需手动设置。另外,它还支持批量烧录,能够同时烧录多个设备,提高了工作效率。 除了常规的调试和编程功能外,j-flash v4.4 还提供了一些其他实用的特性。例如,它可以生成设备的Flash文件,用于快速更新设备的固件。它还支持跟踪调试功能,可以捕捉和分析目标设备的运行时数据,帮助开发者定位和解决问题。 总的来说,j-flash v4.4 是一款强大而且易于使用的嵌入式系统开发工具。它提供了丰富的功能和灵活的接口支持,能够大大简化调试和编程的过程,提高开发效率。无论是初学者还是经验丰富的开发者,都可以从中受益,并加快嵌入式系统的开发进程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值