10-案例: 注册登录

news2024/12/24 9:13:51

项目思路:

        1. 首页展示

                将数据传递给前端模板渲染

        2. 注册用户

                接收前端传递的数据,保存后,重定向到首页

        3. 删除用户

                接收前端传递的用户名,进行删除

        4. 修改用户

                接收前端传递的数据,老名字进行判断,新数据修改数据

项目结构:     

 

构建蓝图:

       (1). apps / user / model.py 增加用户模型
class User:
    def __init__(self, username, password, phone):
        self.username = username
        self.password = password
        self.phone = phone


    def __str__(self):
        return self.username
        (2).apps / user / view.py 定义蓝图对象
from flask import Blueprint

# 定义蓝图对象
user_bp = Blueprint('user', __name__)

# 导入 User模型类
from apps.user.model import User


@user_bp.route("/")
def user_center():
    return "首页"

       (3).apps / __init__.py 创建app,注册蓝图
from flask import Flask
import settings
from apps.user.view import user_bp

# 创建app
def create_app():
    app = Flask(__name__, template_folder="../templates", static_folder="../static")  # app是一个核心对象
    app.config.from_object(settings)  # 加载配置

    # 蓝图
    # 将蓝图对象绑定到app上
    app.register_blueprint(user_bp)
    # ...
    print(app.url_map) # 获取路由信息
    return app
     (4). app.py 绑定 apps
from apps import create_app


# 创建app对象
app = create_app()


if __name__ == '__main__':
    app.run()
   (5). settings.py 全局配置文件
ENV = "development"  # 开发环境
DEBUG = True         # 开启调试模式

编写页面:

(1). base.html: 公共页面模型
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
{# 预留标头位置 #}
    <title>{% block title %}用户中心{% endblock %}</title>
    <style>
        #head {
            height: 50px;
            background-color: bisque;
        }

        #head ul {
            list-style: none;
            height: 50px;
            display:inline-block;
            margin-top:3px;
        }

        #head ul li {
            float: left;
            width: 100px;
            text-align: center;
            font-size: 18px;
            height: 50px;
            line-height: 50px;
        }


        #middle {
            height: 900px;
            background-color: aqua;


        }

        #foot {
            height: 50px;
            line-height: 50px;
            background-color: darkolivegreen;
        }
    </style>
{# 预留css位置 #}
    {% block mycss %}{% endblock %}

</head>
<body>

<div id="head">

        <ul>
            <li><a href=""></a>首页</li>
            <li><a href=""></a>订单</li>
            <li><a href=""></a>商品</li>
            <li><a href=""></a>好物</li>
        </ul>
</div>


<div id="middle">
{# 内容预留位置 #}
    {% block middle %}{% endblock %}
</div>
<div id="foot"></div>


</body>
{# 预留js位置 #}
{% block myjs %}{% endblock %}
</html>
(2). 首页展示

 

(3). 注册功能

 

 (4). 删除功能
@user_bp.route("/del")
def del_user():
    # 获取前端get方式传递的username
    username = request.args.get('username')
    # 根据username找到列表中的user对象
    for user in users:
        if user.username == username:
            users.remove(user) # 移除
            return redirect("/") # 重定向回首页

    else:
        return "删除失败"
(5). 修改功能

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/921121.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

知道吗?微软将Python集成到Excel中,国产软件“抄作业”了

Excel集成Python 众所周知哦&#xff0c;VBA是一种基于微软的Visual Basic语言的宏编程语言&#xff0c;专为在Office应用程序中执行自动化任务而设计。 VBA适用于Excel、Word、PowerPoint等Office套件中的宏编程&#xff0c;可直接操作和控制Office应用程序的对象模型。 我们…

Golang Gorm 高级查询之where查询

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

名片扫描仪有何优缺点?要不要买?

名片扫描仪是一种专用设备&#xff0c;用于将纸质名片上的信息转换为数字格式。它可以通过光学字符识别&#xff08;OCR&#xff09;技术将名片上的文本、图像和其他数据提取出来&#xff0c;并将其保存为电子文件或导入到相关应用程序中。 名片扫描仪是一种年代比较久的产品了…

申请甲骨文免费vps的流程

前提&#xff1a;拥有一张VISA信用卡或者mastercard信用卡 背景&#xff1a;甲骨文的免费VPS&#xff0c;已经使用了一年了&#xff0c;不得不说还是很香的。当时申请的节点是日本的&#xff0c;这次想申请一个美国的&#xff0c;话不多说,开冲。 最初申请的时候也是失败了好多…

【Terraform学习】使用 Terraform 从 EC2 实例访问 S3 存储桶(Terraform-AWS最佳实战学习)

使用 Terraform 从 EC2 实例访问 S3 存储桶 实验步骤 前提条件 安装 Terraform&#xff1a; 地址 下载仓库代码模版 本实验代码位于 task_ec2_s3connet 文件夹中。 变量文件 variables.tf 在上面的代码中&#xff0c;您将声明&#xff0c;aws_access_key&#xff0c;aws_…

linux 同时kill杀死多进程实践

使用场景 当程序中有使用到多进程且进程数较多的情况&#xff0c;如下图&#xff0c;且需要通过控制台杀死所有的 GSM_run.py 的进程时&#xff0c;利用 kill 命令一个一个的去结束进程是及其耗时且繁琐的&#xff0c;这时就需要我们的kill多进程的命令工作了。 批量 Kill 进程…

分享好用的翻译软件

网易有道翻译→网易有道翻译

软件产品为什么需要做测试报告?

在当今数字化的时代&#xff0c;软件产品的开发和使用已经成为各行各业的常态。随着软件市场的竞争越来越激烈&#xff0c;用户对于软件品质和功能的要求也越来越高。而为了确保软件产品质量和稳定性&#xff0c;软件测试报告变得至关重要。 一、软件产品为什么要做测试报告?…

学习ts(七)泛型

定义 泛型允许我们在强类型程序设计语言中编写代码时使用一些以后才指定的类型&#xff0c;在实例化时作为参数指明这些类型。在ts中&#xff0c;定义函数、接口或类的时候&#xff0c;不预先定义好具体的类型&#xff0c;而在使用的时候在指定类型的一种特性。 例子&#xff…

electron软件安装时,默认选择为全部用户安装

后续可能会用electron开发一些工具&#xff0c;包括不限于快速生成个人小程序、开发辅助学习的交互式软件、帮助运维同学一键部署的简易版CICD工具等等。 开发进度&#xff0c;取决于我懒惰的程度。 不过不嫌弃的同学还是可以先关注一波小程序&#xff0c;真的发布工具了&…

32位 STM32 打印 uint64_t 类型

32位 STM32 打印 uint64_t 类型 32位 STM32 打印 uint64_t 类型 32位 STM32 打印 uint64_t 类型 测试代码&#xff0c;未整理&#xff0c;可参考&#xff01; uint64_t cnt 0x1122334455667788;uint32_t test1 (uint32_t)(cnt >> 32);uint64_t test2 (uint64_t)(cnt &…

Squaretest 1.8.3 安装激活

1. 插件下载 2. 离线安装 3. 插件激活

Springboot集成redis单机与集群

一 集成Redis单机版 1 pom文件添加jar <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2 在配置文件application.properties添加redis配置 #…

红米手机怎么录屏?教你快速掌握录屏技巧

“红米怎么录屏呀&#xff0c;最近需要录一场线上的视频会议&#xff0c;眼看就要到时间了&#xff0c;就是找不到录屏在哪里&#xff0c;真的很着急&#xff0c;这场会议非常重要&#xff0c;有没有人会的&#xff0c;教教我&#xff0c;非常感谢&#xff01;” 在手机使用过…

提升政府公文品质:精益求精的校对之道

在当今的数字化时代&#xff0c;公文校对已经不再是简单地检查拼写和语法错误。在确保文档的准确性、完整性和专业性的同时&#xff0c;我们也面临着各种新的挑战&#xff0c;例如敏感词的识别。幸运的是&#xff0c;随着技术的发展&#xff0c;现在有了智能校对工具如“爱校对…

写得了代码,焊得了板!嵌入式开发工程师必修之代码管理方案(中)

目录 2.2 分仓、权限与依赖问题 2.3 基于 Git 进行多仓管理 Git submodule Git subtree Script/CMake Git-Repo Conan 本文来自 武让 极狐GitLab 高级解决方案架构师 &#x1f31f; 前一篇文章&#xff0c;作者介绍了嵌入式开发场景的代码管理特点与诉求&#xff0c;以及…

文件加密最简单的方法有哪些?

文件加密是保护敏感信息和数据安全的重要方法之一。以下是文件加密的几种简单方法&#xff1a; 密码保护&#xff1a; 最简单的方式是使用密码来保护文件。许多应用程序(如Microsoft Office)允许你为文件设置密码&#xff0c;确保只有知道密码的人可以访问文件内容。 压缩工具加…

上海交大ACM班总教头团队重磅新作,带你动手学机器学习(文末赠书4本)

目录 0 写在前面1 什么是机器学习&#xff1f;2 ACM 班总教头&#xff1a;俞勇3 动手学习机器学习赠书活动 0 写在前面 机器学习强基计划聚焦深度和广度&#xff0c;加深对机器学习模型的理解与应用。“深”在详细推导算法模型背后的数学原理&#xff1b;“广”在分析多个机器…

【全站最全】被苹果、谷歌和Microsoft停产的产品(二)

2019 Field Trip 2012 – 2019 APP Field Trip was a mobile app that acted as a virtual tour guide by cross referencing multiple sources of information to provide users information about points of interest near them. AdSense (mobile app) 2013 – 2019 A…

怎么制作sip网络寻呼话筒,sip任意呼叫主机,

怎么制作sip网络寻呼话筒&#xff0c;sip任意呼叫主机&#xff0c; 所需材料一&#xff1a;SV-2103VP sip网络音频模块 功能如下&#xff1a; SV-2101VP/ SV-2103VP使用了AT32F437VGT7处理器构架加专业的双向音频Codec编解码器&#xff0c; 处理器负责数据的传输&#xff0c…