1.首先要下载 flask_sqlalchemy 和 flask_mysqldb。
一般在pycharm中可以搜索到并且下载。如果出现问题,可以百度一下。
2.配置数据库的相关设置:
root:root,前一个是数据库用户名,后一个是密码。
#配置数据库的地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost:3306/flask_sql_demo'
#跟踪数据库的修改,不建议开启
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
3.在mysql数据库中建表:
create database flask_sql_demo charset='utf8';
4.建立与数据库表相对应的python类
class Role(db.Model):
#定义表名
__tablename__ = 'roles'
#定义字段
#db.Column 表示是一个字段
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
5.执行 :db.create_all()
此时在mysql中执行show tables;命令,可以看到已经成功建立了新表。
6.进入IPython,可以利用以下代码进行增删改查。
In [2]: role = Role(name='admin')
In [3]: db.session.add(role) #增
In [4]: db.session.commit()
In [5]: user = User(name='xck', role_id=role.id)
In [8]: user.name='xckkcx' #改
In [9]: db.session.commit()
In [10]: db.session.delete(user) #删
In [11]: db.session.commit()
完整的代码在下面:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
#配置数据库的地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:root@localhost:3306/flask_sql_demo'
#跟踪数据库的修改,不建议开启
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
'''
两张表(管理员/普通用户)
用户(角色ID)
'''
class Role(db.Model):
#定义表名
__tablename__ = 'roles'
#定义字段
#db.Column 表示是一个字段
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(16), unique=True)
role_id = db.Column(db.Integer, db.ForeignKey('roles.id'))
db.drop_all()
db.create_all()
@app.route('/')
def index():
return "hahah"
if __name__ == '__main__':
app.run(debug=True)