示例
# -*- coding:utf-8 -*-
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
class Config(object):
"""配置参数"""
# sqlalchemy的配置参数
# 用户名:root
# 密码:123
# 数据库:test1
SQLALCHEMY_DATABASE_URI = "mysql://root:[email protected]:3306/test1"
# 设置sqlalchemy自动跟踪数据库
SQLALCHEMY_TRACE_MODIFICATIONS = True
app.config.from_object(Config)
db = SQLAlchemy(app) #初始化数据库
# 创建数据库模型类
class Role(db.Model):
__tablename__ = "tbl_roles"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True) # 数据库中的字段
users = db.relationship("User", backref="role") # 非数据库中的字段,方便查询
class User(db.Model):
__tablename__ = "tbl_users" # 表名
id = db.Column(db.Integer, primary_key=True) # 主键
name = db.Column(db.String(64), unique=True) # 数据库中的字段
email = db.Column(db.String(64), unique=True)
password = db.Column(db.String(128))
role_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id")) # 外键
@app.route("/")
def index():
return "index page"
if __name__ == "__main__":
db.drop_all() # 清除数据库中的所有数据
db.create_all() # 创建数据库模型类中的所有表
role1 = Role(name="admin") # 添加数据
role2 = Role(name="stuff")
db.session.add_all([role1, role2])
db.session.commit()
user1 = User(name="a", email="[email protected]", password="abc", role_id=role1.id)
user2 = User(name="b", email="[email protected]", password="abc", role_id=role2.id)
user3 = User(name="c", email="[email protected]", password="abc", role_id=role2.id)
user4 = User(name="d", email="[email protected]", password="abc", role_id=role1.id)
db.session.add_all([user1, user2, user3, user4])
db.session.commit()
# app.run(debug=True)
测试
首先创建数据库test1,然后执行以上代码。
进行测试…