美文网首页
3-mysql用户表

3-mysql用户表

作者: Double_Chen | 来源:发表于2018-11-08 15:23 被阅读22次

在做登录注册功能之前,我们先要在数据库中创建好用户表,终端进入mysql

在我这里,用户为root,密码为123456

mysql -u root -p //回车后输入密码
123456

成功进入mysql,使用命令行创建database

mysql> create database flask_chat charset utf8;

查看当前database指令

mysql> show databases;

或者安装Navicat Premium软件查看

建表

flask有一个库叫flask_sqlalchemy,可以通过ORM方式建表,十分方便,我们需要安装pymysqlflask-sqlalchemy两个库。

然后新建一个models.py来编写表,

为了避免头文件中的循环引用,我们还需要新建一个extdb.py文件来导入flask-sqlalchemy,让app.py和models.py分别导入extdb.py来解决问题。

extdb.py

#encoding: utf-8

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

models.py

#encoding: utf-8

from extdb import db

app.py

# encoding: utf-8

from flask import Flask
import config
from extdb import db
from models import *
import pymysql

app = Flask(__name__)
app.config.from_object(config)
pymysql.install_as_MySQLdb()
db.init_app(app)

开始设计用户表,在models.py中新建一个class:

# encoding: utf-8

from extdb import db
from datetime import datetime


# 用户
class User(db.Model):
    __tablename__ = 'user'  # 表名,不指定的话默认为小写处理后的类名
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    # now()获取的是服务器第一次运行的时间
    # now就是每次创建一个模型的时候,都获取当前的时间
    create_time = db.Column(db.DateTime, default=datetime.now)  # 创建时间
    update_time = db.Column(db.DateTime, default=datetime.now, onupdate=datetime.now)  # 更新时间

    account = db.Column(db.String(20), nullable=False) # 账号
    password = db.Column(db.String(20), nullable=False) # 密码
    telephone = db.Column(db.String(11), nullable=True) # 手机号码
    email = db.Column(db.String(50), nullable=True) # 邮箱
    username = db.Column(db.String(20), nullable=True) # 用户名
    intro = db.Column(db.Text, nullable=True) # 简介
    head_img_url = db.Column(db.String(255), nullable=True) # 头像链接
    sex = db.Column(db.Integer) # 性别
    net_status = db.Column(db.Integer,default=0) # 网络状态

有些字段可能用不到,先加上以备不时之需

这样的方式可以不使用sql语句来创建表

我们还需要用到flask-script和flask-migrate库来实现在终端操作的目的,添加好库后,新建一个manage.py文件

manage.py

# encoding: utf-8

from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from app import app
from extdb import db

manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

接下来要让项目与mysql进行绑定,在config.py文件中加上:

# 数据库
HOSTNAME = '127.0.0.1'
PORT = '3306'
DATABASE = 'flask_cchat'
USERNAME = 'root'
PASSWORD = '123456'
DB_URI = 'mysql+mysqldb://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME,PASSWORD,HOSTNAME,PORT,DATABASE)

SQLALCHEMY_DATABASE_URI = DB_URI

准备工作做完了,现在通过终端的方式创建用户表

终端cd到根目录

cd /...flask_chat
python3 manage.py db init
python3 manage.py db migrate
python3 manage.py db upgrade

在第一次新建数据库的时候要执行 db init 指令,以后数据库表的修改就只需要后面两条指令即可

查看一下数据库

mysql> show tables;

这样就完成了用户表的创建

GitHub链接

相关文章

  • 3-mysql用户表

    在做登录注册功能之前,我们先要在数据库中创建好用户表,终端进入mysql 在我这里,用户为root,密码为1234...

  • sequelize嵌套关联表如何插入数据?

    一共三张表,用户表关联用户信息表,用户信息表又关联用户地址表,那怎么根据用户信息表往地址表中插入数据?

  • 3-MySQL的用户管理[mysql数据库]

    MySQL图形客户端 MySQL自带的4个逻辑空间 创建用户 给用户设置权限 新建逻辑空间数据库 重设root密码...

  • Oracle创建表空间创建用户和用户授权

    Oracle创建表空间创建用户和用户授权 --创建表空间 --创建临时表空间 --创建用户 --用户授权grant...

  • laravel5.8视频教程--Laravel实现的RBAC权限

    1、建表(用户表、角色表、权限表、用户角色表、角色权限表) 2、在用户模型和角色模型中实现多对多 3、将菜单视为公...

  • 2022-09-10

    (一)创建表空间、创建用户、用户赋权限、表结构 一、创建表空间 二、创建用户 三、用户赋权限 说明:给用户赋dba...

  • 创建表空间及用户

    临时表空间 数据表空间 创建用户 赋予权限 查询所有用户 查询所有临时表空间 查询所有表空间 删除用户 删除表空间...

  • MYSQL用户、角色和权限你真的懂吗?

    一、用户角色权限表描述 1.MySQL用户角色权限相关表 表名描述user用户表db数据库权限表tables_pr...

  • web权限管理模块(RBAC)基于角色的访问控制

    (RBAC)基于角色的访问控制数据表设计共三张表:用户表、角色表或用户组、权限表。用户表(包含角色id)跟角色挂钩...

  • 权限的理解与Shiro

    权限的理解 权限的话,权限做起来就是5张表;用户表、角色表、用户角色表、权限表、权限角色表。给用户授角色给角色授权...

网友评论

      本文标题:3-mysql用户表

      本文链接:https://www.haomeiwen.com/subject/xnewxqtx.html