flask 模型建立
定义表类中的 表名要使用 __tablename__
注意是双下划线
#from flask import Flask
1. 导入sqlachemy类
from flask_sqlalchemy import SQLAlchemy
2. 配置数据库的连接
app=Flask(__name__)
#指定连接的数据库,数据库需手动创建
app.config['SQLALCHEMY_DATABASE_URL']='mysql://root:mysql@localhost/web1'
#动态追踪修改的配置
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
#3.实例化sqlalchemy对象
db=SQLAlchemy(app)
#4.定义模型类: Role角色:一方
class Role(db.Model):
#手动指定表名
__tablename__='roles'
#定义主键,必须指定
id=db.Column(db.Integer,primary_key=True)
#定义角色名称,不能有重复
name=db.Column(db.String(32),unique=True)
#relationship定义的关系引用,在数据库中没有实体
us=db.relationship('User',backref='role')
def __repr__(self):
return 'role:%s' %self.name
#定义模型类:User ,多方
class User(db.Model):
__tablename__='users'
id=db.Column(db.Integer,primary_key=True)
name=db.Column(db.String(32))
email=db.Column(db.String(32))
pswd=db.Column(db.String(32))
#设置外键
# role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
def __repr__(self):
return 'user:%s' % self.name
@app.route('/')
def index():
return 'hello world'
if __name__ == '__main__':
#删除表
db.drop_all()
#创建表
db.create_all()
#模拟添加数据
ro1=Role(name='admin')
ro2=Role(name='user')
#添加数据 seesion
# 添加 数据对象(记录 行对象)给数据库会话对象 session.
# add_all添加多条数据对象,add添加一条数据对象
db.session.add_all([ro1,ro2])
#提交数据
db.session.commit()
us1 = User(name='wang', email='wang@163.com', pswd='123',role_id=ro1.id)
us2 = User(name='zhang', email='zhang@189.com', pswd='201512', role_id=ro2.id)
us3 = User(name='chen', email='chen@126.com', pswd='987654', role_id=ro2.id)
us4 = User(name='zhou', email='zhou@163.com', pswd='456789', role_id=ro1.id)
db.session.add_all([us1, us2, us3, us4])
db.session.commit()
#模拟添加数据
app.run(debug=True)