flask框架创建数据库(MySQL)

示例

# -*- 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,然后执行以上代码。
进行测试…
1

猜你喜欢

转载自blog.csdn.net/weixin_40775077/article/details/84899867