首页 > 数据库 >【13.0】sqlalchemy 集成到Flask框架

【13.0】sqlalchemy 集成到Flask框架

时间:2023-08-26 21:57:18浏览次数:44  
标签:__ sqlalchemy name Flask py db SQLALCHEMY 13.0

【在Flask中集成SQLAlchemy】

在Flask中集成SQLAlchemy可以通过使用第三方扩展包flask-sqlalchemy来实现,以下是详细的步骤和说明:

  • 首先,需要导入SQLAlchemy类以及flask_sqlalchemy模块:
from flask_sqlalchemy import SQLAlchemy
  • 实例化SQLAlchemy对象:
db = SQLAlchemy()

这个对象将用于在Flask应用程序中处理数据库操作。

  • 将db对象注册到Flask应用程序中:
db.init_app(app)
  • 这里的app是Flask应用程序实例,通过init_app()方法将db对象与具体的Flask应用程序关联起来。
  • 在视图函数中使用数据库会话:
# 全局的db.session是线程安全的
db.session.query(User).all()
  • 在Flask中,可以通过db.session访问数据库会话,使用SQLAlchemy的查询语法进行数据库操作。
  • models.py中定义数据库模型时,需要继承自db.Model
class User(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    username = db.Column(db.String(80), unique=True, nullable=False)
  • 在这段示例代码中,User类继承自db.Model,可以通过db.Column定义表的列属性。
  • 配置文件中添加数据库连接信息:
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://[email protected]:3306/ddd?charset=utf8"
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = -1
SQLALCHEMY_TRACK_MODIFICATIONS = False
  • 在配置文件中,我们需要提供数据库连接的URI及相关的连接池配置参数。
  • 这些配置项可以根据具体的数据库环境进行调整。
  • 通过以上步骤,就可以在Flask应用程序中集成SQLAlchemy,并通过db对象进行数据库操作。
  • 使用SQLAlchemy与Flask结合,可以更方便地管理数据库模型、执行查询和事务操作,以及处理数据库的迁移等任务。

【项目演示】

结构树
src
    __init__.py
    models.py
    settings.py
    views.py
manage.py
  • models.py
# 第四步:在models中,找所有东西 都从db中拿
from src import db


class User(db.Model):
    # 以__开头的是配置
    __tablename__ = 'users'  # 数据库表名称,如果不写,以类名作为表名
    id = db.Column(db.Integer, primary_key=True)  # 主键索引,聚簇索引
    name = db.Column(db.String(64), index=True, nullable=False)  # name字段加辅助索引
    email = db.Column(db.String(32), unique=True)
    __table_args__ = (
        db.UniqueConstraint('id', 'name', name='uix_id_name'),  # 联合唯一
        db.Index('ix_id_name', 'name', 'email'),  # 索引
    )

    def __str__(self):
        return self.name

    def __repr__(self):
        return self.name
  • settings.py
DEBUG=True
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:[email protected]:3306/db001?charset=utf8"
SQLALCHEMY_POOL_SIZE = 5
SQLALCHEMY_POOL_TIMEOUT = 30
SQLALCHEMY_POOL_RECYCLE = -1
# 追踪对象的修改并且发送信号
SQLALCHEMY_TRACK_MODIFICATIONS = False
  • views.py
from flask import Blueprint
from .models import User

user = Blueprint('user', __name__)

from src import db


@user.route('/')
def index():
    res = db.session.query(User).filter_by(name='lqz').all()

    print(res)
    return 'asdfasdf'
  • ``
from src import app

if __name__ == '__main__':
    app.run()

标签:__,sqlalchemy,name,Flask,py,db,SQLALCHEMY,13.0
From: https://www.cnblogs.com/dream-ze/p/17659518.html

相关文章

  • 【1.0】flask框架之初识
    【一】Flask框架引入【1】Python界的web框架(1)Django:Django是一个高级的PythonWeb框架,它注重快速开发和代码复用。它提供了许多内置功能和模块,包括ORM(对象关系映射),表单处理,用户认证,会话管理等。Django采用了MTV(模型-模板-视图)的设计模式,使得开发人员可以更加专注于业务逻辑......
  • 【3.0】flask之路由系统
    【一】路由系统基于装饰器fromflaskimportFlaskapp=Flask(__name__)#(1)flask的路由系统基于装饰器#rule:路径#methods:请求方式【列表】#endpoint:别名#@app.route('/detail/<int:nid>',methods=['GET'],endpoint='detail')@app.route('......
  • 【2.0】flask框架之配置文件
    【一】引入django有settings配置文件所有web框架都会有配置文件-配置文件的形式可能不太一样【二】flask的配置文件【1】配置方式一(简单配置)importuuidfromflaskimportFlaskapp=Flask(__name__)#配置方式一:只能配置debug和secret_keyapp.debug=True......
  • 【4.0】Flask框架之CBV
    【一】基本使用fromflaskimportFlask,render_template#template_folder默认就是当前文件夹下的templates可以不写app=Flask(__name__,template_folder='templates')#FBV:基于函数的视图@app.route('/index',methods=['GET'])defindex():return......
  • python sqlalchemy 框架
     1. SQLAlchemy简介SQLAlchemy是一个PythonSQL工具包和对象关系映射器,它为应用程序开发人员提供了SQL的全部功能和灵活性。它提供了一整套广为人知的企业级持久性模式,旨在实现高效和高性能的数据库访问,并将其转化为简单且Pythonic的领域语言。以下是SQLAlchemy的一些主要特......
  • Python Web:Django、Flask和FastAPI框架对比
    Django、Flask和FastAPI是PythonWeb框架中的三个主要代表。这些框架都有着各自的优点和缺点,适合不同类型和规模的应用程序。Django:Django是一个全功能的Web框架,它提供了很多内置的应用程序和工具,使得开发Web应用程序更加容易。Django采用了MTV(模型-模板-视图)设计模式,提供ORM......
  • Python-Flask配置https证书
    零、问题错误:SSLVersion2and3ProtocolDetection一、说明1、通过使用flask框架配置https证书进行HTTPs证书配置后会被扫描到漏洞,漏洞描述如下:远程服务接受使用SSL2.0和/或SSL3.0加密的连接。这些版本的SSL受到多个加密缺陷的影响,包括:-带CBCCiphers的不安全的填充方案。......
  • python-flask小结
    1.flask和django区别1.flask是一个轻量级的,django是一个重量级的,包含了很多组件,包括admin,orm等,flask虽然没有但可以引入第三方组件。2.flask是基于上下文管理做的一个应用上下文appcontext和请求上下文requestcontext管理。django只是通过参数传递。2.flask生命周期......
  • SQLalchemy补充
    目录七更多查询方式八连表查询九原生sql(django-orm如何执行原生sql)9.1sqlalchemy执行原生sql9.2django执行原生sql十flask-sqlalchemy使用10.1sqlalchemy自己操作src/init.pysrc/models.pysrc/session_sql.pysrc/settings.pysrc/views.pymanage.py10.2使用flask-sqlalch......
  • SQLAlchemy
    目录一SQLAlchemy介绍和快速使用1.1sqlalchemy的原生操作二sqlalchemy通过orm创建表删除表sqlalchemy.pymodels.py示例三scoped_session线程安全3.1scoped_session线程对象3.2类装饰器四基本增删查改4.1基本增删查改五表关系:一对多(一对一)5.1表模型5.2新增和基于对象......