Flask 实现用户登录功能的完整示例:前端与后端整合(附Demo)

目录

  • 前言
  • Demo

前言

对于python用户的登录,以下只是提供一个Demo用于学习

更多的python知识点可从我的专栏中进行学习

  1. python专栏
  2. 详细分析Flask中的蓝图Blueprint(附Demo)
  3. 详细分析Flask部署云服务器(图文介绍)
  4. 构建Flask前后端不分离项目(附Python Demo)

Demo

项目结构:

/project-directory/templateslogin.htmlapp.py

前端登录页面:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Login</title><style>body {font-family: Arial, sans-serif;background-color: #f4f4f4;}.container {width: 300px;margin: 100px auto;padding: 20px;background-color: white;box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);}h2 {text-align: center;}.form-group {margin-bottom: 15px;}.form-group label {display: block;}.form-group input {width: 100%;padding: 8px;box-sizing: border-box;}.form-group button {width: 100%;padding: 10px;background-color: #5cb85c;color: white;border: none;cursor: pointer;}.error {color: red;text-align: center;}</style>
</head>
<body><div class="container"><h2>Login</h2><form method="POST" action="/login"><div class="form-group"><label for="username">Username</label><input type="text" id="username" name="username" required></div><div class="form-group"><label for="password">Password</label><input type="password" id="password" name="password" required></div>{% if error %}<p class="error">{{ error }}</p>{% endif %}<div class="form-group"><button type="submit">Login</button></div></form></div>
</body>
</html>

后端应用:

from flask import Flask, render_template, request, redirect, url_for, flash, sessionapp = Flask(__name__)
app.secret_key = 'your_secret_key'  # 用于会话加密,可以换成自己的密钥# 假设的用户数据,实际应用应从数据库中获取
users = {'admin': '123456','ma': 'nong'
}@app.route('/')
def index():if 'username' in session:return f'Logged in as {session["username"]}. <a href="/logout">Logout</a>'return redirect(url_for('login'))@app.route('/login', methods=['GET', 'POST'])
def login():if request.method == 'POST':username = request.form['username']password = request.form['password']# 检查用户名和密码if username in users and users[username] == password:session['username'] = usernamereturn redirect(url_for('index'))else:error = 'Invalid username or password.'return render_template('login.html', error=error)return render_template('login.html')@app.route('/logout')
def logout():session.pop('username', None)return redirect(url_for('login'))if __name__ == '__main__':app.run(debug=True)

账号和密码分别是这两个

  • 账号:admin,密码: 123456
  • 账号:ma ,密码:nong

登录成功后:

在这里插入图片描述

包括登录失败 以及 字段没有输入的捕捉情况:

在这里插入图片描述

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

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

相关文章

yolov5-7转onnx并推理(包括缩放图推理与原始图片推理)

一、yolov5转onnx 先安装onnx, onnxruntime-gpu, ( pip install 就可以) 1. 静态模型&#xff1a; python export.py --weights yolov5s.pt --include onnx2.动态模型&#xff1a; python export.py --weights yolov5s.pt --include onnx --dynamic3.这里谈谈静态与动态的…

打开C嘎嘎的大门:你好,C嘎嘎!(1)

前言&#xff1a; 小编在学习完一些数据结构以后&#xff0c;终于&#xff0c;我还是来到了这一步&#xff0c;开始学习我小学就听说过的C&#xff0c;至于为什么标题写的C嘎嘎&#xff0c;因为小编觉着这样好念而且有意思&#xff0c;今天是小编学习C嘎嘎的第一天&#xff0c;…

用Python提取PowerPoint演示文稿中的音频和视频

将多种格式的媒体内容进行重新利用&#xff08;如PowerPoint演示中的音频和视频&#xff09;是非常有价值的。无论是创建独立的音频文件、提取视频以便在线分发&#xff0c;还是为了未来的使用需求进行资料归档&#xff0c;从演示文稿中提取这些媒体文件可以为多媒体内容的多次…

Laravel邮件发送:从配置到发邮件的指南!

Laravel邮件发送功能如何实现&#xff1f;怎么使用Laravel发信&#xff1f; Laravel作为一款流行的PHP框架&#xff0c;提供了强大且易用的邮件发送功能。AokSend将详细介绍如何从配置到实际发送邮件的全过程&#xff0c;帮助你快速掌握Laravel邮件发送的技巧。 Laravel邮件发…

css 控制虚线刻度尺寸

文章目录 css效果 css <div style"width: 100%; height: 1px;background-image: linear-gradient(to right, #545454 0%, #545454 80%, transparent 5%);background-size: 15px 10px;background-repeat: repeat-x; margin: 0 auto;"></div>效果

EyeCLIP:解决眼科模型在多模态数据整合、跨模态一致性和长尾分布处理方面的局限性

EyeCLIP&#xff1a;解决眼科模型在多模态数据整合、跨模态一致性和长尾分布处理方面的局限性 EyeCLIP和传统眼科视觉大模型有什么区别&#xff1f;秒懂大纲提出背景解法拆解创意视角中文意译 论文&#xff1a;EyeCLIP: A visual–language foundation model for multi-modal o…

【人工智能】如何利用AI的特性,高效处理前端代码与学习前端知识!

在这个信息爆炸的时代&#xff0c;前端开发的知识和技术层出不穷。我们不仅需要在网上搜索各种前端知识教程&#xff0c;还要深入理解不同的前端框架。这一过程往往耗时耗力&#xff0c;让人感到疲惫不堪。然而&#xff0c;自从GPT、文言一心等大型语言模型的出现&#xff0c;我…

网课视频怎么录制?零基础屏幕录制方法分享

随着在线教育的兴起&#xff0c;网课录制成为了教师和学习者不可或缺的技能之一&#xff0c;无论是想要分享知识、制作教程&#xff0c;还是记录学习过程&#xff0c;掌握屏幕录制方法都至关重要。 这时候我们就需要一款简单易用、功能齐全的屏幕录制软件&#xff0c;市面上有…

Ceph官方文档_01_Ceph简介

目录 Ceph介绍Ceph介绍 Ceph可用于向云平台提供Ceph对象存储,Ceph可用于向云平台提供Ceph块设备服务。Ceph可用于部署Ceph文件系统。所有Ceph存储群集部署开始都是先设置每个Ceph节点,然后再设置网络。 Ceph存储集群需要以下内容:至少一个Ceph监视器和至少一个Ceph管理器,…

尚硅谷-----乐(智)尚代驾(Day4...重置版)---项目概述环境搭建

一、项目介绍 1.背景 乐尚代驾是一种新型的出行服务模式&#xff0c;通过该平台可以为用户提供代驾服务&#xff0c;采用微信小程序方式进行开发&#xff0c;主要分为乘客端、司机端和平台管理端&#xff0c;这里只实现前两个。 2.技术概括 后端技术栈 前端技术栈 使用的云服…

LLM World:轻松驾驭大模型价格

当今&#xff0c;人工智能蓬勃发展&#xff0c;大模型的应用也如繁星般不断涌现。 大模型提供商为了在竞争激烈的市场中脱颖而出并获取最大利润&#xff0c;往往采用复杂的差异化定价策略。不同的功能模块、使用场景&#xff08;如企业级应用、科研用途、小型创业公司试用等&a…

华为云DevSecOps和DevOps

目录 1.华为云DevSecOps和DevOps 1.1 DevSecOps 1.1.1 核心功能 1.1.2 优势 1.2 DevOps 1.2.1 核心功能 1.2.2 优势 1.3 DevOps和DevSecOps的区别 1.3.1 安全性集成 1.3.2 自动化的安全工具 1.3.3 团队协作 1.3.4 质量与合规性 1.3.5 成本与风险管理 1.3.5 总结 …

鸿蒙开发城市联动选择弹框

鸿蒙开发城市联动选择弹框 城市联动选择弹框不容易&#xff0c;在Android那边也是不容易。选择某个省份时&#xff0c;城市要对得上&#xff0c;切换得及时 一、思路&#xff1a; 关键用Provide和Consume互相监听对方的变化 二、效果图&#xff1a; 三、视频效果&#xff1…

全面解析流量态势感知与网络性能监控:IT运维中的核心技术

在现代IT运维中&#xff0c;网络的稳定性和业务的连续性是企业赖以生存的基石。随着数字化转型的深入&#xff0c;网络流量日益复杂&#xff0c;安全威胁愈加严峻&#xff0c;运维人员不仅需要确保网络的顺畅运行&#xff0c;还必须及时发现潜在风险并快速响应。流量态势感知与…

linux 之0号进程、1号进程、2号进程

一、0号进程 0号进程&#xff0c;通常也被称为idle进程&#xff0c;或者也称为swapper进程&#xff0c;其 pid 等于0。 0号进程是linux启动的第一个进程&#xff0c;它的task_struct的comm字段为"swapper",所以也称为swpper进程。 kernel/include/linux/init_task…

【Python】探索 Boltons:Python 标准库的强力补充

每个不需要早起的日子&#xff0c;我都醒的格外早。 在Python的世界里&#xff0c;标准库提供了许多强大的工具和功能&#xff0c;但总有一些场景下&#xff0c;我们需要更多的帮助。boltons就是这样一个库&#xff0c;它提供了超过230个BSD许可的纯Python实用工具&#xff0c…

【设计模式-适配】

Adapter Pattern&#xff08;适配器模式&#xff09; 是一种结构型设计模式&#xff0c;其主要目的是让不兼容的接口能够协同工作。适配器模式通过引入一个适配器类&#xff0c;转换一个类的接口&#xff0c;使得原本不兼容的接口可以互相配合&#xff0c;从而实现接口的兼容性…

STM32cubeMX + VScode开发GD32移植(HAL库通用),保姆级!!!!!!!

STM32cubeMX VScode开发GD32移植(HAL库通用)&#xff0c;保姆级&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 文章目录 STM32cubeMX VScode开发GD32移植(HAL库通用)&#xff0c;保姆级&#xff01;&#xff01;&#xff01;&#…

API接口什么意思?电商API接口有什么作用

API接口简介&#xff1a; 从技术层面上来看&#xff0c;API是一系列函数、协议和工具&#xff0c;它们定义了软件组件如何交互&#xff0c;让开发者无需了解对方内部工作原理就可以使用对方的功能或服务。 事实上&#xff0c;API接口在电商行业中的应用较为广泛。 具体来看&…

MFC 使用细节

MFC 使用细节 1. MFC&#xff1a;在共享 DLL 中使用 MFC 或者在静态库中使用 MFC 的区别 在共享 DLL 中使用 MFC&#xff1a;这种方式下&#xff0c;MFC DLL 的内容不会包含在您的 EXE 文件中。因此&#xff0c;生成的 EXE 文件较小&#xff0c;但运行时需要系统中有相关的 M…