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

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.create_all()

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

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

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

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

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()

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

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

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
Python Flask框架使用数据库的一种常见方式是通过ORM(对象关系映射)框架来操作数据库,比如使用SQLAlchemy。ORM框架可以帮助我们将数据库操作转化为面向对象的方式,而不需要直接使用SQL语句。 在使用Python Flask框架的ORM框架SQLAlchemy进行数据库操作时,可以按照以下步骤进行: 1. 导入所需的模块和类,包括FlaskSQLAlchemy。 2. 创建一个Flask应用程序实例。 3. 配置数据库连接信息,包括数据库类型、用户名、密码、主机和端口等。 4. 创建一个数据库模型类,该类对应数据库格,并定义各个字段的属性和关联关系。 5. 在应用程序使用该模型类进行数据库操作,比如查询、插入、更新和删除等。 6. 在需要的时候提交或回滚事务。 以下是一个简单的示例代码,展示了如何在Python Flask框架使用SQLAlchemy进行数据库操作: ``` # 导入所需的模块和类 from flask import Flask from flask_sqlalchemy import SQLAlchemy # 创建Flask应用程序实例 app = Flask(__name__) # 配置数据库连接信息 app.config['SQLALCHEMY_DATABASE_URI'] = '数据库连接信息' # 创建SQLAlchemy对象 db = SQLAlchemy(app) # 创建数据库模型类 class Movie(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(100), nullable=False) director = db.Column(db.String(50)) year = db.Column(db.Integer) # 在应用程序使用模型类进行数据库操作 @app.route('/') def index(): # 查询电影列 movies = Movie.query.all() return str(movies) # 启动应用程序 if __name__ == '__main__': app.run() ``` 在上述示例代码,我们使用了SQLAlchemy数据库进行操作。通过定义模型类Movie,并在应用程序进行查询操作,可以获取到数据库的电影列。 需要注意的是,具体的数据库连接信息需要根据实际情况进行配置,比如数据库类型、用户名、密码、主机和端口等。 总结来说,在Python Flask框架使用ORM框架SQLAlchemy可以帮助我们简化数据库操作,不需要直接使用SQL语句,而是通过定义模型类和使用ORM框架提供的方法来进行数据库操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值