数据库配置

# -*-coding:utf-8 -*-

from flask import Flask

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# 配置数据库地址

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://wan:[email protected]/flask_sql_demo'

# 跟踪数据库的修改-->不建议开启未来的版本中会移除

app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

"""

两张表

角色(管理员/普通用户)

用户(角色ID)

"""

# 数据库模型,需要继承db.Model

class Role(db.Model):

    # 定义表名

    __tablename__ = 'roles'

    # 定义字段

    # db.Model表示一个字段

    id = db.Column(db.Integer, primary_key=True)

    name = db.Column(db.String(16), unique=True)

    # 写关联

    # backref='role':表示role是User要用的属性

    # 在一的一方写关联

    # users = db.relationship('User')表示和User表模型发生关联,增加了一个user属性

    users = db.relationship('User', backref='role')

class User(db.Model):

    __tablename__ = 'users'

    id = db.Column(db.Integer, primary_key=True)

    name = db.Column(db.String(16), unique=True)

    email = db.Column(db.String(32), unique=True)

    password = db.Column(db.String(32))

    # db.ForeignKey('role.id')表示外键,表名.id

    role_id = db.Column(db.Integer, db.ForeignKey('role.id'))

    # User希望有role属性,但是这个属性的定义,需要在另一个模型中定义

    # 用__repr__打印一个可读字符串

    def __repr__(self):

        return '

@app.route('/')

def hello_world():

    return 'Hello World!'

if __name__ == '__main__':

    # 删除表

    db.drop_all()

    # 创建表

    db.create_all()

    app.run(debug=True)

你可能感兴趣的:(数据库配置)