一、连接mysql数据库和创建表
首先下载flask_sqlalchemy库和mysql-python库
flask_sqlalchemy是将模型类中的语句转换为SQL语句的,mysql-python是与数据库建立起连接
通过flask_sqlalchemy库中的SQLAlchemy创建出对象,使用对象创建模型类,调用create_all()在数据库中创建出表
# coding:utf-8
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
class Config(object):
# sqlalchemy配置参数
SQLALCHEMY_DATABASE_URI = "mysql://root:123456@127.0.0.1:3306/flask"
# 设置sqlalchemy自动跟踪数据库
SQLALCHEMY_TRACK_MODIFICACTIONS = True
# 添加到配置中
app.config.from_object(Config)
# 创建数据库sqlalchemy工具对象
db = SQLAlchemy(app)
class User(db.Model):
"""用户表"""
# 设置表名
__tablename__ = "tbl_users"
# 字段 字段类型 主键
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True) # unique=True去重
email = db.Column(db.String(128), unique=True)
password = db.Column(db.String(128))
# 设置外键
roles_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id"))
class Role(db.Model):
"""用户角色/身份表"""
__tablename__ = "tbl_roles"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
# 与表User在模型类层建立关系,便于查询,可以不设置(backref="role"也可以不设置)
users = db.relationship("User", backref="role")
if __name__ == '__main__':
# 清除数据库中所有的表
db.drop_all()
# 创建所有的表
db.create_all()
向表中添加数据
查询
查询所有:类名.query.all()
查询第一条数据
根据主键id查询
使用db.session查询
使用 or
offset() 偏移原始查询返回的结果,也就是跳过几条开始往后查询
order_by的两种使用方式,建议第二种
desc()降序,asc()升序,默认升序
求和count
from sqlalchemy import func,func.count()
修改数据
相当于django中的def __str__
语法参考文章:https://www.cnblogs.com/minsons/p/8193514.html