176. Python语言 的 Flask框架项目 之 个人信息 模块的开发

2023-12-29 08:38

本文主要是介绍176. Python语言 的 Flask框架项目 之 个人信息 模块的开发,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

个人信息 模块的开发

  • 本章主题
  • 关键词
  • 登录装饰器
  • 用户上传头像
    • 存储方案
      • 文件存储解决方案
    • 七牛云平台
    • 密钥管理
      • 上传文件示例代码
    • 用户上传头像接口设计
      • 请求方式
      • 请求参数:表单参数
      • 响应结果
    • 用户上传头像接口定义
  • 修改用户名
    • 修改用户名接口设计
      • 请求方式
      • 请求参数:表单参数
      • 响应结果
    • 修改用户名接口定义
  • 总结小便条

本章主题

  

关键词

  

登录装饰器

def login_required(view_func):@functools.wraps(view_func)def wrapper(*args, **kwargs):# 判断用户的登录状态user_id = session.get("user_id")# 如果用户是登录的, 执行视图函数if user_id is not None:# 将user_id保存到g对象中,在视图函数中可以通过g对象获取保存数据g.user_id = user_idreturn view_func(*args, **kwargs)else:# 如果未登录,返回未登录的信息return jsonify(errno=RET.SESSIONERR, errmsg="用户未登录")return wrapper

  

用户上传头像

存储方案

  • 保存到程序本地,磁盘满了要扩容
  • 备份的问题
  • 多机存储
  • 多用户保存同一张图片,名字不一样,造成空间浪费
  • 多用户上传同名文件,会出现覆盖之前的内容

文件存储解决方案

  • 自己搭建文件存储系统
    • FastDFS 快速分布式文件存储系统(电商)
    • HDFS hadoop分布式文件系统
  • 选择第三方服务
    • 七牛云

  

七牛云平台

在这里插入图片描述

  开发者中心:https://developer.qiniu.com/kodo/sdk/1242/python

  

密钥管理

在这里插入图片描述

上传文件示例代码

# -*- coding: utf-8 -*-
# flake8: noqa
from qiniu import Auth, put_file, etag
import qiniu.config
#需要填写你的 Access Key 和 Secret Key
access_key = 'Access_Key'
secret_key = 'Secret_Key'
#构建鉴权对象
q = Auth(access_key, secret_key)
#要上传的空间
bucket_name = 'Bucket_Name'
#上传后保存的文件名
key = 'my-python-logo.png'
#生成上传 Token,可以指定过期时间等
token = q.upload_token(bucket_name, key, 3600)
#要上传文件的本地路径
localfile = './sync/bbb.jpg'
ret, info = put_file(token, key, localfile)
print(info)
assert ret['key'] == key
assert ret['hash'] == etag(localfile)

  

用户上传头像接口设计

请求方式

选项方案
请求方法POST
请求地址/users/avatar

请求参数:表单参数

参数名类型是否必传说明
avatarfile用户头像

响应结果

响应结果响应内容
保存失败响应错误提示
保存成功返回当前页面

  

用户上传头像接口定义

@api.route("/users/avatar", methods=["POST"])
@login_required
# @api.before_request
def set_user_avatar():"""设置用户的头像参数: 图片(多媒体表单格式)  用户id (g.user_id)"""

  

修改用户名

修改用户名接口设计

请求方式

选项方案
请求方法PUT
请求地址/users/name

请求参数:表单参数

参数名类型是否必传说明
namestring用户名

响应结果

响应结果响应内容
保存失败响应错误提示
保存成功返回用户名

  

修改用户名接口定义

@api.route("/users/name", methods=["PUT"])
@login_required
def change_user_name():"""修改用户名"""

  

总结小便条

本篇文章主要讲了以下几点内容:

  

  本章回顾暂时就到这了,如果还有点晕,那就把文章里所有引用的案例代码再敲几遍吧。拜拜~

这篇关于176. Python语言 的 Flask框架项目 之 个人信息 模块的开发的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548963

相关文章

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

Hadoop企业开发案例调优场景

需求 (1)需求:从1G数据中,统计每个单词出现次数。服务器3台,每台配置4G内存,4核CPU,4线程。 (2)需求分析: 1G / 128m = 8个MapTask;1个ReduceTask;1个mrAppMaster 平均每个节点运行10个 / 3台 ≈ 3个任务(4    3    3) HDFS参数调优 (1)修改:hadoop-env.sh export HDFS_NAMENOD

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

深入探索协同过滤:从原理到推荐模块案例

文章目录 前言一、协同过滤1. 基于用户的协同过滤(UserCF)2. 基于物品的协同过滤(ItemCF)3. 相似度计算方法 二、相似度计算方法1. 欧氏距离2. 皮尔逊相关系数3. 杰卡德相似系数4. 余弦相似度 三、推荐模块案例1.基于文章的协同过滤推荐功能2.基于用户的协同过滤推荐功能 前言     在信息过载的时代,推荐系统成为连接用户与内容的桥梁。本文聚焦于

嵌入式QT开发:构建高效智能的嵌入式系统

摘要: 本文深入探讨了嵌入式 QT 相关的各个方面。从 QT 框架的基础架构和核心概念出发,详细阐述了其在嵌入式环境中的优势与特点。文中分析了嵌入式 QT 的开发环境搭建过程,包括交叉编译工具链的配置等关键步骤。进一步探讨了嵌入式 QT 的界面设计与开发,涵盖了从基本控件的使用到复杂界面布局的构建。同时也深入研究了信号与槽机制在嵌入式系统中的应用,以及嵌入式 QT 与硬件设备的交互,包括输入输出设

OpenHarmony鸿蒙开发( Beta5.0)无感配网详解

1、简介 无感配网是指在设备联网过程中无需输入热点相关账号信息,即可快速实现设备配网,是一种兼顾高效性、可靠性和安全性的配网方式。 2、配网原理 2.1 通信原理 手机和智能设备之间的信息传递,利用特有的NAN协议实现。利用手机和智能设备之间的WiFi 感知订阅、发布能力,实现了数字管家应用和设备之间的发现。在完成设备间的认证和响应后,即可发送相关配网数据。同时还支持与常规Sof

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

科研绘图系列:R语言扩展物种堆积图(Extended Stacked Barplot)

介绍 R语言的扩展物种堆积图是一种数据可视化工具,它不仅展示了物种的堆积结果,还整合了不同样本分组之间的差异性分析结果。这种图形表示方法能够直观地比较不同物种在各个分组中的显著性差异,为研究者提供了一种有效的数据解读方式。 加载R包 knitr::opts_chunk$set(warning = F, message = F)library(tidyverse)library(phyl