Flask框架的数据库操作之模型数据库配置

1,先在终端创建一个数据库

create database db_1808b_flask charset='utf8';

2,在pycharm创建一个py 文件,把数据库引进来

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql

pymysql.install_as_MySQLdb()
app = Flask(__name__)
# 设置连接数据库的URL
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]:3306/db_flask'

# 数据库和模型类同步修改
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

# 查询时会显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
# 初始化一个对象
db = SQLAlchemy(app)

3,创建一个英雄类,我们以王者荣耀为例子:

# 王者荣耀
#创建一个英雄类型,射手,刺客
class heroType(db.Model):
    # 定义一个表名
    __tablename__ = 'tbl_hero_type'
    # 定义一个主键  Column代表列
    id = db.Column(db.Integer,primary_key=True)
    # nullable允许为空吗?unique可以重复吗?
    name = db.Column(db.String(32),nullable=False,unique=True)
    # 方便查找  去这个类下找英雄relationship,这个列不是真实存在的,里面要加类名hero
    # backref 在关系的另一模型中添加反向引用
    heros = db.relationship('hero',backref='type')
    

4,创建英雄

 定义英雄
class hero(db.Model):
    # 定义一个表名
    __tablename__ = 'tbl_hero'
    # 定义一个主键  Column代表列
    id = db.Column(db.Integer, primary_key=True)
    # nullable允许为空吗?unique可以重复吗?
    name = db.Column(db.String(32), nullable=False, unique=True)
    gender = db.Column(db.SmallInteger,default=1)
    # 设置外键,ForeignKey后面填的是表名.id   类表的主键是英雄表的外键
    type_id = db.Column(db.Integer,db.ForeignKey('tbl_hero_type.id'))

5,接下来建表

if __name__ == "__main__":
    # app.run(debug=True)
    db.create_all()  # 建表语句

6,这时候我们去数据库里查询,就会发现新建的两个表


你可能感兴趣的:(Flask框架的数据库操作之模型数据库配置)