您的位置:首页 > 编程语言 > Python开发

Flask框架(flask中的数据库SQLAlchemy(python3),配置、模型类、创建表)

2018-12-25 22:05 781 查看

1.  SQLAlchemy是一个关系型数据库框架,

     它提供了高层的ORM和底层的原生数据库的操作。

      flask-sqlalchemy是一个简化了SQLAlchemy操作的flask扩展。

2. 安装   

   环境   python3.6  +  window10   +  pycharm  

   pip  install flask-sqlalchemy

   pip install mysql-connector     #  安装驱动       (不安装的话会报出警告)

  如果用的虚拟环境,记得安装在虚拟环境当中

 3. sqlalchemy的常用配置

    (1)    app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+mysqlconnector://root:mysql@127.0.0.1:3306/test'

           # 后面字符串的解释  mysql+mysqlconnector://用户名:密码@127.0.0.1:3306/数据库名

            一般IP和端口都是  127.0.0.1:5000

 ( 2) app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

     #  True 让数据库里面的数据和模型数据库里面的数据保持一致

 (3)  #查询时会显示原始SQL语句
       app.config['SQLALCHEMY_ECHO'] = True

4. 创建模型类: 

  模型类;    创建数据库模型类(继承 sqlalchemy 工具对象中的Model类),

                一个模型类对应一张模型表

                数据库表名的常见规范:

                               (1) 数据库名缩写_表名                       (2) tbl_表名

创建模型类时常用的SQLAlchemy字段类型 :

 创建模型类时常用的SQLAlchemy列选项 :

 创建模型类时常用的SQLAlchemy关系选项:

5. 创建所有的表:  db.drop_all()

    删除所有的表:  db.create_all()

  注意: db是       db = SQLAlchemy(app)   # 创建数据库 sqlalchemy 工具对象

 6. 创建一个用户表和用户身份表,并做好设置,运行程序,没有报错 即创建成功,或者自己也可以在程序完成之后

     print("创建成功"),,看下面的程序

[code]from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

class Config(object):
"""配置参数"""
'''sqlalchemy的配置参数'''
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://root:123456@127.0.0.1:3306/db_python"
'''设置sqlalchemy自动跟踪数据库'''
SQLALCHEMY_TRACK_MODIFICATIONS = True

# 设置参数
app.config.from_object(Config)

'''创建数据库 sqlalchemy 工具对象'''
db = SQLAlchemy(app)

"""
创建数据库模型类(继承 sqlalchemy 工具对象中的Model类),一个模型类对应一张模型表
数据库表名的常见规范:
(1) 数据库名缩写_表名   (2) tbl_表名
"""

class Role(db.Model):
"""用户身份表"""
__tablename__ = "tbl_roles"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), unique=True)
'''
relationship()把两个表关联在一起,不添加也是可以的,根据自己的需求
backref : 在关系的另一模型中添加反向引用
相当于给要关联的表添加一个role属性
不添加也是可以的,根据自己的需求
'''
user = 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(128), unique=True)
password = db.Column(db.String(128))
role_id = db.Column(db.Integer, db.ForeignKey("tbl_roles.id"))  # 从底层中

if __name__ == '__main__':
'''清除数据库中的所有数据'''
db.drop_all()
'''创建所有表'''
db.create_all()

 然后在数据库中,就可以看见,创建好的表,如下图:

这个就直接把模型类即模型表就创建好了

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: