当前位置: 首页 > news >正文

Python-Flask实现登录

Python-Flask实现登录

  • Python-Flask实现登录
    • 项目结构
    • Flask蓝图路由
    • 项目代码

Python-Flask实现登录

项目结构

在这里插入图片描述

Flask蓝图路由

from flask import Blueprint, render_template, request, sessionac = Blueprint('account', __name__)@ac.route('/login', methods=['GET', 'POST'])
def login():

项目代码

  • app.py
from flask2 import create_appapp = create_app()
if __name__ == '__main__':app.run()

*init.py

import uuidfrom flask import Flaskdef create_app():app = Flask(__name__)app.secret_key = str(uuid.uuid4())# 注册蓝图from .views import accountfrom .views import orderapp.register_blueprint(account.ac)app.register_blueprint(order.od)return app

*account.py

from flask import Blueprint, render_template, request, session
from werkzeug.utils import redirectfrom utils import dbac = Blueprint('account', __name__)@ac.route('/login', methods=['GET', 'POST'])
def login():if request.method == 'GET':return render_template("login.html")# 获取表单提交的手机号密码role = request.form.get("role")mobile = request.form.get("mobile")pwd = request.form.get("pwd")user_dict = db.fetchone("select * from user where role = %s and mobile = %s and password = %s", [role, mobile, pwd])print(user_dict)if user_dict:session["user_info"] = {'role': user_dict['role'], 'mobile': user_dict['mobile'], 'real_name': user_dict['real_name']}return redirect("/order/list")return render_template("login.html", error="用户名密码错误")

*order.py

from flask import Blueprint, sessionod = Blueprint('order', __name__)@od.route('/order/list')
def order_list():user_info = session.get("user_info")print(user_info, type(user_info))return "订单列表"
  • login.html
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>登录</title>
</head>
<body>
<h1>用户登录</h1>
<form method="post" action="/login"><select name="role"><option value="1">客户</option><option value="2">管理员</option></select><input type="text" name="mobile" placeholder="手机号"/><input type="password" name="pwd" placeholder="密码"/><input type="submit" value="提交"><span style="color:red">{{ error }}</span>
</form>
</body>
</html>
  • db.py
import pymysql
from dbutils.pooled_db import PooledDB
from pymysql import cursorsPOOl = PooledDB(creator=pymysql,maxconnections=10,mincached=2,maxcached=5,blocking=True,setsession=[],ping=0,host="127.0.0.1",port=3306,user="root",passwd="root",charset="utf8",db="python-flask"
)def fetchone(sql, params):conn = POOl.connection()cursor = conn.cursor(cursor=cursors.DictCursor)cursor.execute(sql, params)result = cursor.fetchone()cursor.close()conn.close()return result
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.com/a/249142.html

相关文章:

  • XAttention 计算步骤详解及示例
  • 58、嵌入式Servlet容器-【源码分析】切换web服务器与定制化
  • UDS协议中0x34、0x36、0x37服务详解及应用
  • 表达式的自动类型转换
  • HashMap vs LinkedHashMap
  • 短剧热浪,席卷海内外。
  • 2025企业级BI产品评测和推荐
  • 论坛系统自动化测试
  • GRUB2 启动配置的工作原理与优先级规则详解
  • SSH远程连接到Windows服务器
  • 概率基础——不确定性的数学
  • 1.3、SDH光接口类型
  • 批处理实现:自动抓取perfetto日志 自动导出到当前文件夹 自动打开分析页面
  • (nice!!!)(LeetCode 每日一题) 2616. 最小化数对的最大差值 (二分查找)
  • 落地 DDD 领域模型(常见的实现模式)
  • 单项链表的操作及其实现
  • 【二叉树】(四)二叉搜索树的基础修改构造及属性求解1
  • Spring 事务传播行为详解
  • AbMole小课堂:从肿瘤研究到体内模型构建,Mitomycin C一“剂”搞
  • 寻找区域中的面积和中心点
  • java哨兵底层原理
  • linux下安装所有用户能共享的anaconda
  • rocketmq producer和consumer连接不同的集群,如何隔离
  • Windows10电脑开始菜单快速查找应用程序
  • Web网页端即时通讯源码/IM聊天源码RainbowChat-Web
  • RocketMQ总结
  • 导出支付宝账单步骤
  • Unity 接入抖音小游戏一
  • 【指针和函数求数组的相反数】2022-5-21
  • 聊一聊 - 如何写好README文档