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:1@127.0.0.1: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,这时候我们去数据库里查询,就会发现新建的两个表


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容