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

07-02 管理员后台账号模块开发 登陆退出准备工作,数据库GUI工具演示

账号登录退出功能数据库准备工作

数据库的建表操作linux和windows操作系统都一样.

步骤1: 新建数据库, 并进入该数据库

数据库名:food_db

CREATE DATABASE `food_db` DEFAULT CHARACTER SET = `utf8mb4`;
mysql> CREATE DATABASE `food_db` DEFAULT CHARACTER SET = `utf8mb4`;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| food_db            |
| mydb1              |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

mysql> use food_db
Database changed
mysql> CREATE TABLE `user` (
    ->   `uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户uid',
    ->   `nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '用户名',
    ->   `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码',
    ->   `email` varchar(100) NOT NULL DEFAULT '' COMMENT '邮箱地址',
    ->   `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:男 2:女 0:没填写',
    ->   `avatar` varchar(64) NOT NULL DEFAULT '' COMMENT '头像',
    ->   `login_name` varchar(20) NOT NULL DEFAULT '' COMMENT '登录用户名',
    ->   `login_pwd` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码',
    ->   `login_salt` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码的随机加密秘钥',
    ->   `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:有效 0:无效',
    ->   `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
    ->   `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间', 
    ->   PRIMARY KEY (`uid`),
    ->   UNIQUE KEY `login_name` (`login_name`)
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表(管理员)';
Query OK, 0 rows affected (0.25 sec)

mysql> show tables
    -> ;
+-------------------+
| Tables_in_food_db |
+-------------------+
| user              |
+-------------------+
1 row in set (0.00 sec)

步骤2:新建管理员数据表

表名: user

 建表语句如下:

CREATE TABLE `user` (
  `uid` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '用户uid',
  `nickname` varchar(100) NOT NULL DEFAULT '' COMMENT '用户名',
  `mobile` varchar(20) NOT NULL DEFAULT '' COMMENT '手机号码',
  `email` varchar(100) NOT NULL DEFAULT '' COMMENT '邮箱地址',
  `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '1:男 2:女 0:没填写',
  `avatar` varchar(64) NOT NULL DEFAULT '' COMMENT '头像',
  `login_name` varchar(20) NOT NULL DEFAULT '' COMMENT '登录用户名',
  `login_pwd` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码',
  `login_salt` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码的随机加密秘钥',
  `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '1:有效 0:无效',
  `updated_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '最后一次更新时间',
  `created_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '插入时间',
  PRIMARY KEY (`uid`),
  UNIQUE KEY `login_name` (`login_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表(管理员)';

步骤3:使用 flask-sqlacodegen 扩展 方便快速生成 ORM model

步骤3.1 pip install flask-sqlacodegen

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple flask-sqlacodegen

 

步骤3.2 使用方法, 进入项目目录,执行如下命令

 

flask-sqlacodegen 'mysql://root:@127.0.0.1/food_db' --outfile "common/models/model.py"  --flask

 

flask-sqlacodegen 'mysql://root:密码@127.0.0.1/food_db' --tables user --outfile "common/models/user.py"  --flask

如果报错:ModuleNotFoundError: No module named 'MySQLdb', 则需要pip安装"mysqlclient"

 

 执行命令:

如果没有进入项目目录会报错:FileNotFoundError: [Errno 2] No such file or directory: 'common/models/User.py'

flask-sqlacodegen 'mysql://root:root@127.0.0.1/food_db' --tables user --outfile "common/models/User.py"  --flask

 自动生成了User.py

步骤4: 修改自动生成的model中的db变量

from application import db

步骤5修改配置文件

 

SQLALCHEMY_DATABASE_URI = 'mysql://root:对应root的密码@127.0.0.1/food_db?charset=utf8mb4'

 

步骤6:开始写代码

接下来,开始写登录退出的代码 参考07-03 & 04 用户登录退出

相关文章:

  • 16 生产部署 --01 单进程启动服务
  • 00-01 Python flask构建微信小程序订餐系统介绍
  • 07-03 04 用户登录退出
  • linux桥接联网正常后重启系统不能联网解决方法
  • 宝*塔运维安装
  • 07-05 编辑和修改登陆人信息
  • 07-05 编辑和修改登录人信息
  • 07-06 管理员后台账号模块开发 账号管理:列表详情展示
  • 07-07 管理员后台账号模块开发 账号管理:添加和编辑账号
  • 07-08 管理员后台账号模块开发 搜索和分页
  • 07-09 管理员后台账号模块开发 删除和恢复
  • 08-01 小程序会员登录和注册
  • 17-01 软件云主机上线部署
  • 17 -02 git和码云同步操作
  • ERROR 2002 (HY000): Cant connect to local MySQL server through socket /var/lib/mysql/mysql.sock
  • [NodeJS] 关于Buffer
  • C++11: atomic 头文件
  • co.js - 让异步代码同步化
  • scala基础语法(二)
  • scrapy学习之路4(itemloder的使用)
  • SOFAMosn配置模型
  • 基于OpenResty的Lua Web框架lor0.0.2预览版发布
  • 数组大概知多少
  • 微服务入门【系列视频课程】
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 追踪解析 FutureTask 源码
  • ​queue --- 一个同步的队列类​
  • ​力扣解法汇总946-验证栈序列
  • "无招胜有招"nbsp;史上最全的互…
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (力扣题库)跳跃游戏II(c++)
  • (六) ES6 新特性 —— 迭代器(iterator)
  • (算法)前K大的和
  • (已解决)什么是vue导航守卫
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • (转)母版页和相对路径
  • (转)详解PHP处理密码的几种方式
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET C#版本和.NET版本以及VS版本的对应关系
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .net 简单实现MD5
  • .Net7 环境安装配置
  • .net与java建立WebService再互相调用
  • .NET中统一的存储过程调用方法(收藏)
  • /3GB和/USERVA开关
  • @GetMapping和@RequestMapping的区别
  • [.NET]桃源网络硬盘 v7.4
  • []sim300 GPRS数据收发程序
  • [20161214]如何确定dbid.txt
  • [Android学习笔记]ScrollView的使用
  • [Asp.net MVC]Bundle合并,压缩js、css文件
  • [CDOJ 1343] 卿学姐失恋了
  • [DevEpxress]GridControl 显示Gif动画
  • [GN] Vue3快速上手1
  • [go 反射] 进阶