返回顶部
首页 > 资讯 > 精选 >flask SQLAlchemy怎么连接数据库
  • 114
分享到

flask SQLAlchemy怎么连接数据库

2023-07-05 10:07:14 114人浏览 泡泡鱼
摘要

这篇文章主要介绍了flask sqlAlchemy怎么连接数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇flask SQLAlchemy怎么连接数据库文章都会有所收获,下面我们一起来看

这篇文章主要介绍了flask sqlAlchemy怎么连接数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇flask SQLAlchemy怎么连接数据库文章都会有所收获,下面我们一起来看看吧。

介绍

flask介绍

Flask是一个轻量级的python WEB框架,它基于Werkzeug和Jinja2库构建,因其简洁、灵活、易扩展等特性而广受欢迎。

Flask的核心设计理念是"micro",即"微型"。相比于其他大型的Web框架,Flask仅提供了最基本的功能集,如路由、请求与响应处理、模板渲染等,但同时也允许开发者通过插件或扩展来添加更多的功能。这种设计方式使得Flask非常适合构建小型的Web应用程序、api服务以及原型验证等场景。

除此之外,Flask还具有以下优点:

  • 简单易学:Flask的API设计非常简单,易于掌握和使用。

  • 高度灵活:Flask允许开发者根据实际需求自由选择需要引入的插件或库,从而实现高度灵活的定制化。

  • 轻量级高效:Flask的核心代码很小,运行速度非常快,可以应对高并发的访问。

  • 丰富的扩展库:Flask拥有庞大的扩展库,涵盖了数据库、表单验证、用户认证、缓存等各个方面的功能。

总之,Flask是一个简单、灵活、可扩展的Python Web框架,适用于各种规模的Web应用程序开发。它的设计思想和哲学使得开发者可以快速上手、高效开发,并且能够根据实际需求进行自由扩展。

SQLAlchemy介绍

SQLAlchemy是一个Python的ORM(对象关系映射)工具,它提供了一种将关系数据库映射到Python对象的方式。ORM是一种编程模式,使得我们可以通过使用面向对象的语法来操作关系型数据库,从而抽象出底层的SQL查询。

SQLAlchemy提供了一种高级、Pythonic的接口,让程序员能够使用Python代码进行数据库操作,而无需直接编写SQL。同时,它还提供了对多个关系数据库的支持,包括MySQLpostgresqloracle、Microsoft SQL Server等。

SQLAlchemy提供两种不同的API:Core API和ORM API。Core API提供了底层的SQL表达式和查询构建,ORM API则提供了更高级别的面向对象的数据访问和持久化。

使用SQLAlchemy,开发者可以轻松地创建和管理数据库表、执行复杂的查询、实现事务处理、维护数据完整性等。它还支持连接池、线程安全、自动回滚等特性,以提高应用程序的性能和可靠性。

总之,SQLAlchemy是一个强大、灵活、易于使用的Python ORM框架,是python开发者在处理关系型数据库时不可或缺的工具之一。

Flask-SQLAlchemy介绍

Flask-SQLAlchemy是一个为Flask应用程序提供SQLAlchemy支持的扩展,它通过将SQLAlchemy集成到Flask中,让开发者可以更加方便地使用ORM(对象关系映射)模型来操作数据库。

Flask-SQLAlchemy提供了一种面向对象的方式来处理数据库,用户可以通过定义Python类来映射数据库表格。这些类通常被称为“模型”,每个模型对应一个数据库表格,其中类属性对应表格的列。

Flask-SQLAlchemy的主要特性包括:

  • 简单易用:Flask-SQLAlchemy提供了简洁、易于理解和学习的API,用户可以快速上手并开始构建数据库模型。

  • 数据库迁移:Flask-SQLAlchemy支持集成Flask-Migrate扩展实现数据库结构的自动迁移,以方便管理数据库结构的变化。

  • 数据库会话管理:Flask-SQLAlchemy在Flask应用中提供了SQLAlchemy的会话管理功能,开发者可以轻松地进行数据库操作。

  • 查询优化:Flask-SQLAlchemy提供了灵活的查询API,支持多种查询方式和过滤器,开发者可以根据实际需求自由选择。

总之,Flask-SQLAlchemy是一个非常强大、灵活且易于使用的ORM框架,对于使用Flask框架的Web应用程序开发人员而言,它是一个不可或缺的工具。使用Flask-SQLAlchemy,开发者可以更加方便、高效地实现数据持久化,同时也可以避免手动编写低效和容易出错的SQL语句。

连接步骤

使用Flask-SQLAlchemy,需要先安装Flask和SQLAlchemy以及Flask-SQLAlchemy扩展。可以使用pip命令来安装它们:

pip install flaskpip install sqlalchemypip install flask_sqlalchemy

安装完成后,可以按照以下步骤使用Flask-SQLAlchemy:

在Flask应用程序中导入flask_sqlalchemy模块并创建一个SQLAlchemy对象:

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWord = 'root'DB_URI = 'Mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATioNS'] = Truedb = SQLAlchemy(app)

创建数据库模型(也称为“表”),定义一个继承自db.Model的Python类,并将类属性定义为列。例如,下面的代码定义了一个名为User的模型:

class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    username = db.Column(db.String(80), unique=True, nullable=False)    email = db.Column(db.String(120), unique=True, nullable=False)

创建数据库表格,可以使用Flask-Migrate扩展来进行数据库迁移管理。例如,可以运行以下命令创建迁移脚本:

flask db init #初始化,只需要一次flask db migrate #只要更改上边的模型了,就需要执行这条和下条命令flask db upgrade

使用数据库,可以使用db.session来进行数据库操作。例如,下面的代码将创建一个新的用户:

new_user = User(username='xiaogao', email='1443004194@qq.com')db.session.add(new_user)db.session.commit()

在Flask应用程序中使用数据库,可以在Flask视图函数中使用数据库进行数据查询、更新等操作。例如,下面的代码查询所有的用户并将它们渲染到html页面中:

@app.route('/users')def users():    all_users = User.query.all()    return render_template('users.html', users=all_users)

增删改查操作

增加数据

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)# 定义数据表类class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    age = db.Column(db.Integer)# 创建新用户new_user = User(name='John', age=30)# 添加到session并提交db.session.add(new_user)db.session.commit()

查询数据

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)# 定义数据表类class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    age = db.Column(db.Integer)#根据id查询user=User.query.get(1)#查询id为1的用户    # 查询所有用户all_users = User.query.all()#遍历for user in all_users:    print(f'{user.id}:{user.name}:{user.age}')    # 查询指定用户user = User.query.filter_by(name='John').first()# 查询年龄在20到30之间的用户users = User.query.filter(User.age >= 20, User.age <= 30).all()

修改数据(更新数据)

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)# 定义数据表类class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    age = db.Column(db.Integer)# 查询需要修改的用户user = User.query.filter_by(name='John').first()# 修改用户信息user.age = 35# 提交修改db.session.commit()

删除数据

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)# 定义数据表类class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    age = db.Column(db.Integer)# 查询需要删除的用户user = User.query.filter_by(name='John').first()# 删除用户db.session.delete(user)# 提交删除db.session.commit()

外键绑定与ORM关系映射

一对一关系

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)# 定义数据表类class User(db.Model):    __tablename__ = 'user'    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    age = db.Column(db.Integer)class Post(db.Model):    __tablename__ = 'post'    id = db.Column(db.Integer, primary_key=True)    title = db.Column(db.String(50))    content = db.Column(db.Text)# Post表的user_id外键绑定User表的id    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))        # 根据用户创建帖子user = User(name='John', age=30)db.session.add(user)db.session.commit()post = Post(title='Hello World', content='This is my first post.', user_id=user.id)db.session.add(post)db.session.commit()# 查询帖子及其对应的用户信息post = Post.query.first()print(post.title)print(post.user.name)

User类包含了一个posts属性,指向了与该用户相关的所有帖子。而Post类包含了一个user属性,指向了创建该帖子的用户。通过这种方式,可以在Python对象之间建立关系,方便进行查询和操作。

一对多关系

from flask import Flaskfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)# 数据库配置HOSTNAME = '127.0.0.1'PORT = '3306'DATABASE = 'flask_study'USERNAME = 'root'PASSWORD = 'root'DB_URI = 'mysql+pymysql://{}:{}@{}:{}/{}?charset=utf8'.format(USERNAME, PASSWORD, HOSTNAME, PORT, DATABASE)app.config['SQLALCHEMY_DATABASE_URI'] = DB_URIapp.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = Truedb = SQLAlchemy(app)class User(db.Model):    id = db.Column(db.Integer, primary_key=True)    name = db.Column(db.String(50))    profile = db.relationship('Profile', backref='user', uselist=False)    # db.backref    # 1. 在反向引用的时候,如果需要传递一些其他的参数,那么就需要用到这个函数,否则不需要使用,只要在relationship的backref参数上,设置反向引用的名称就可以了。    # 2. uselist=False:代表反向引用的时候,不是一个列表,而是一个对象。    class Post(db.Model):    id = db.Column(db.Integer, primary_key=True)    title = db.Column(db.String(100))    content = db.Column(db.Text)    user_id = db.Column(db.Integer, db.ForeignKey('user.id'))    user = User(name='John')post = Post(title='Hello World', content='This is my first post.')user.posts.append(post)db.session.add(user)db.session.commit()

Post模型通过user_id外键引用User模型。在User模型中,我们使用posts属性定义了与Post模型的关系,并使用backref参数创建一个名为user的反向引用。这样,我们可以通过user.posts从任何一个用户对象访问其所有文章对象。

关于“flask SQLAlchemy怎么连接数据库”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“flask SQLAlchemy怎么连接数据库”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网精选频道。

--结束END--

本文标题: flask SQLAlchemy怎么连接数据库

本文链接: https://lsjlt.com/news/351050.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • flask SQLAlchemy怎么连接数据库
    这篇文章主要介绍了flask SQLAlchemy怎么连接数据库的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇flask SQLAlchemy怎么连接数据库文章都会有所收获,下面我们一起来看...
    99+
    2023-07-05
  • flask-SQLALchemy连接数据库如何实现
    本文小编为大家详细介绍“flask-SQLALchemy连接数据库如何实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“flask-SQLALchemy连接数据库如何实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知...
    99+
    2023-07-02
  • flask-SQLALchemy连接数据库的实现示例
    目录SQLALchemy介绍:sqlalchemy与Flask-sqlalchemy的区别:表关系:flask——Migrate插件一、基本用法二、项目重构:...
    99+
    2024-04-02
  • 如何在Flask中使用SQLAlchemy连接数据库
    这篇文章将为大家详细讲解有关如何在Flask中使用SQLAlchemy连接数据库,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、连接mysql在 Flask-SQLAlchemy 中,数据...
    99+
    2023-06-14
  • 【Flask&MySQL】Flask连接数据库MySQL(十)
    Flask操作数据库MySQL 先自行安装好MySQL。Flask想要操作数据库,必须要先安装Python操作 MySQL 的驱动。在Python中,目前有以下MySQL驱动包。 MySQL-python:也就是MySQLdb。是对C语言操...
    99+
    2023-09-02
    数据库 mysql python flask
  • 怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库
    这篇“怎么使用sqlalchemy-gbasedbt连接GBase 8s数据库”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2023-07-05
  • Flask数据库如何连接与使用
    本篇内容主要讲解“Flask数据库如何连接与使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flask数据库如何连接与使用”吧!数据库连接配置HOST = "XX...
    99+
    2023-07-05
  • Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
    使用Flask-SQLAlchemy管理数据库 Flask-SQLAlchemy是一个Flask扩展,它简化了在Flask应用程序中对SQLAlchemy的使用。SQLAlchemy是一个强大的关系数据库框...
    99+
    2022-06-04
    框架 数据库 教程
  • 详解Flask数据库的连接与使用
    目录数据库连接配置创建实体类配置打印SQL语句或、与、非和排序数据库连接配置 HOST = "XXXXXXXXXXXXX" PORT = 3310 USERNAME = "root"...
    99+
    2023-02-24
    Flask数据库连接 Flask数据库使用 Flask数据库
  • Flask中SQLAlchemy怎么安装
    这篇文章主要介绍了Flask中SQLAlchemy怎么安装,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本文教程操作环境:windows7系统、flask1.0,DELL G...
    99+
    2023-06-14
  • Flask的Sqlalchemy怎么使用
    本篇内容主要讲解“Flask的Sqlalchemy怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Flask的Sqlalchemy怎么使用”吧!一: 基本使用:1:环境的安装:pip&nb...
    99+
    2023-07-02
  • 使用sqlalchemy-gbasedbt连接GBase8s数据库的步骤详解
    目录1,确认安装python32,安装GBase 8s数据库连接工具(CSDK)3,安装sqlalchemy-gbasedbt3.1, 在线安装sqlalchemy-gbasedbt...
    99+
    2023-05-14
    sqlalchemy-gbasedbt连接GBase 8s数据库 GBase 8s数据库
  • python怎么连接数据库_python连接数据库教程
    1、首先python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:。 2、然后可以访问Python数据库接口及API查看详细的支持数据库列表。不同的数据库你需要下载不同...
    99+
    2024-04-02
  • mysql数据库怎么连接数据库
    如何连接 mysql 数据库准备连接信息:服务器地址、端口号、用户名、密码、数据库名称。使用 mysql 连接器(如 mysql workbench、phpmyadmin)或编程语言(如...
    99+
    2024-08-05
    mysql python phpmyadmin
  • 分析解决Python中sqlalchemy数据库连接池QueuePool异常
    目录数据库相关错误的解决办法错误一:数据库连接池超过限制错误二:数据库事务未回滚数据库相关错误的解决办法 错误一:数据库连接池超过限制 SqlAlchemy QueuePool li...
    99+
    2024-04-02
  • 使用sqlalchemy-gbasedbt连接GBase 8s数据库的步骤详解
    目录1,确认安装python32,安装GBase 8s数据库连接工具(CSDK)3,安装sqlalchemy-gbasedbt3.1, 在线安装sqlalchemy-gbasedbt4,编写测试Demo,执行测试测试环境...
    99+
    2023-04-01
    sqlalchemy-gbasedbt连接GBase 8s数据库 GBase 8s数据库
  • Flask使用SQLAlchemy实现持久化数据
    目录项目引入flask-sqlalchemy ORM简介及模型定义 表关系类型及编码实现 一对多关系(多对一关系) 一对一关系 多对多关系 数据库基本操作 插入 更新 查询 删除 项...
    99+
    2024-04-02
  • navicat怎么连接数据库
    navicat中连接数据库的方法:1、打开navicat管理工具;2、点击左上角“连接”;3、在对话框中输入连接名、ip地址、端口、用户名、密码等信息;4、点击“连接测试”;5、测试成功即可点击“确定”连接数据库。具体操作步骤:打开navi...
    99+
    2024-04-02
  • mysql怎么连接数据库
    mysql连接数据库的方法:1.打开运行窗口;2.打开命令行窗口;3.输入命令连接mysql数据库;4.再输入密码连接数据库即可。mysql连接数据库的方法:使用【win+r】快捷键打开运行窗口。在对话框中输入“cmd”打开命令行窗口。输入...
    99+
    2024-04-02
  • mysql数据库怎么连接
    mysql数据库连接的方法按Win+R,输入“cmd”,打开 DOS 窗口。输入 ”mysql-hlocalhost-uroot-p”连接数据库。接着输入密码,连接即可。如果出现“mysql不是内部或外部命令”的问题,那就需要将m...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作