首页 > 数据库 >Flask-MySQLdb与Flask-SQLAlchemy

Flask-MySQLdb与Flask-SQLAlchemy

时间:2023-11-11 17:56:49浏览次数:47  
标签:SQLAlchemy Flask app MySQL MySQLdb mysql config

Flask-MySQLdbFlask-SQLAlchemy 是 Flask 中用于与 MySQL 数据库交互的两个不同的扩展。它们有不同的使用方式和优劣势。

  1. Flask-MySQLdb:

    • 用法:

      from flask import Flask
      from flask_mysqldb import MySQL
      
      app = Flask(__name__)
      
      app.config['MYSQL_HOST'] = 'your_mysql_host'
      app.config['MYSQL_USER'] = 'your_mysql_user'
      app.config['MYSQL_PASSWORD'] = 'your_mysql_password'
      app.config['MYSQL_DB'] = 'your_mysql_db'
      
      mysql = MySQL(app)
      
    • 优点:

      • 对于基本用例而言,简单直接。
      • 适用于希望直接使用 MySQL 查询的项目。
    • 缺点:

      • 与 SQLAlchemy 相比功能有限,特别是在数据库抽象方面。
      • 在处理复杂的数据模型和关系时可能不够灵活。
  2. Flask-SQLAlchemy:

    • 用法:

      pythonCopy codefrom flask import Flask
      from flask_sqlalchemy import SQLAlchemy
      
      app = Flask(__name__)
      
      app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:password@localhost:3306/your_database_name'
      app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
      
      db = SQLAlchemy(app)
      
    • 优点:

      • 提供完整的对象关系映射(ORM)系统。
      • 提供更高级别的数据库操作抽象。
      • 支持不仅限于 MySQL 的不同数据库后端。
      • 更容易处理复杂的数据模型和关系。
    • 缺点:

      • 对初学者来说可能学习曲线较陡。

如何选择:

  • 如果应用程序规模较小或数据库交互较简单,Flask-MySQLdb 可能更直接。
  • 如果预计处理更复杂的数据模型、关系,或者未来可能切换到其他数据库后端,Flask-SQLAlchemy 是更强大和可扩展的选择。

对于较大或较复杂的项目,建议选择 Flask-SQLAlchemy

标签:SQLAlchemy,Flask,app,MySQL,MySQLdb,mysql,config
From: https://www.cnblogs.com/code3/p/17826142.html

相关文章

  • python flask虚拟环境 uwsgi nginx Supervisor 宝塔面板部署
    安装部署对应的python版本1.安装虚拟环境插件virtualenvpipinstallvirtualenv2.创建虚拟环境virtualenv/www/wwwroot/项目/envvirtualenv+路径3.激活虚拟环境source/www/wwwroot/项目/env/bin/activate4.退出虚拟环境的指令deactivate这里不用管,需要退出的时......
  • Flask解决跨域问题
    什么是跨域问题跨域问题指的是浏览器限制了从一个源(协议、域名、端口)访问另一个源的资源的行为,这个限制是浏览器的一个安全机制。如果一个网页从一个源加载了另一种类型的资源(例如HTML、CSS、脚本或图像)但是资源的来源是不同的源,那么就会发生跨域问题。当一个请求url的协议、域......
  • Python中使用sqlalchemy操作数据库遇到密码包含@的处理方法
    欺骗性的oracle12514错误,这就有问题了,努力方向就不对了。。。密码包含@的处理方法使用sqlalchemy操作数据库的时候,遇到密码中包含@的时候会报错。因为它是通过@来链接IP地址的,遇到密码里有@就跟语法里的@混乱分不清了。编辑器就会报错。比如下面这个例子:用户名:XXXXX密码:1......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日篇:flask视图和路由进阶
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • flask中的创建响应对象【make_response函数】与【Response类】
    make_response和Response都用于在Flask中创建响应对象,但它们之间有一些区别。make_response函数make_response是Flask提供的一个便捷函数,用于创建响应对象。它通常用于在视图函数中设置响应的内容、状态码和头部。主要的特点包括:可以方便地设置响应内容、状态码、头......
  • Python_Flask视图类和蓝图
    Flask视图类1.设置路由的新方法:将URL路径和一个视图类关联将URL路径和一个函数关联,这个函数又被称为视图函数在Flask中,也可以使用类来处理相关的URL,这样的也被称为视图类。使用类视图的好处是支持继承,可以把一些共性的东西放在父类中,其他子类可以继承###......
  • Flask_微服务-Nacos
    微服务微服务通常需要通过REST或gRPC等协议相互通信,由于我们可能同时与多个微服务通信 Nacos-服务注册、发现与配置中心https://github.com/alibaba/nacos传统的单元应用架构开始朝着微服务架构方向演进。演进过程中首要问题就是微服务如何相互发现对方进行调用?我......
  • 【Flask框架】全知识点笔记4章60页MD文档,今日主题:flask视图和路由开发
    本文的主要内容:flask视图&路由、虚拟环境安装、路由各种定义、状态保持、cookie、session、模板基本使用、过滤器&自定义过滤器、模板代码复用:宏、继承/包含、模板中特有变量和函数、Flask-WTF表单、CSRF、数据库操作、ORM、Flask-SQLAlchemy、增删改查操作、案例、蓝图、单元测......
  • [Python] 基于 flask 构建 Web API 实现参数注入和校验
    在python中,flask包是一个轻量级的WEB框架,常用于快速构建HTTP服务。但它并没有提供参数校验和注入的功能。习惯了java等高级编程语言开发webapi的同学,应该都不想每定义一个api都要写很多代码去做校验和获取请求参数吧,至少我是这样。幸运的是,已经有人提供了参数校验相......
  • flask部署在腾讯云上,但在本地使用网页无法访问——问题解决
    flask部署在腾讯云上,但在本地使用网页无法访问——问题解决1.修改腾讯云防火墙,把对应的port开放:2.修改代码if__name__=='__main__':app.run(host="0.0.0.0",port=5000,debug=True)参考链接:https://zhuanlan.zhihu.com/p/611969276......