1. 程式人生 > >flask框架建立資料庫(MySQL)

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