python flask sqlalchemy连接数据库流程介绍

下面我将详细讲解如何使用Python Flask和SQLAlchemy连接数据库,并提供两个示例说明。

Flask和SQLAlchemy连接数据库的流程

连接数据库是Web应用程序开发中非常重要的一部分。Python Flask框架提供了一个Python ORM库 - SQLAlchemy,帮助我们更便捷地连接数据库。

下面是Flask和SQLAlchemy连接数据库的主要步骤:

  1. 安装Flask和SQLAlchemy

Flask和SQLAlchemy都可以使用pip进行安装。在终端输入以下命令:

pip install Flask
pip install SQLAlchemy
  1. 创建Flask应用程序

下面是一个简单的Flask应用程序的代码示例:

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello World'

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

这个应用程序监听根URL('/'),并返回字符串“Hello World”。

  1. 创建数据库连接

在Flask应用程序中,您需要创建一个SQLAlchemy对象来连接数据库,并设置数据库引擎和连接参数。下面是一个示例:

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库引擎+连接参数'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

上面的代码将会创建一个名为User的模型,用来映射到数据库中的一张表。在创建db对象时需要传入Flask应用程序对象,以便SQLAlchemy知道如何连接到数据库。SQLALCHEMY_DATABASE_URI变量指示SQLAlchemy如何连接到数据库。

  1. 创建数据表

在Flask应用程序中创建数据库表与SQLAlchemy中的表的定义相同。下面是一个示例:

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库引擎+连接参数'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

db.create_all()

db.create_all()将会在数据库中创建User模型中定义的表。

  1. 向数据库添加数据

在Flask中使用SQLAlchemy添加数据,需要实例化模型并将其添加到数据库中。下面是一个示例:

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库引擎+连接参数'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

db.create_all()

u = User('test', 'test@test.com')
db.session.add(u)
db.session.commit()

以上示例创建了一个名为u的User对象,并将其添加到数据库中。db.session.add()添加新的对象,db.session.commit()将这个对象保存到数据库。

  1. 在Flask应用程序中查询数据

在Flask应用程序中查询数据,需要使用其ORM查询语言。下面是一个示例:

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = '数据库引擎+连接参数'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

db.create_all()

u = User('test', 'test@test.com')
db.session.add(u)
db.session.commit()

users = User.query.all()

for user in users:
    print(user.name, user.email)

以上示例查询了数据库中的所有User对象,并输出每个对象的名称和电子邮件地址。

示例1:连接SQLite数据库

下面是一个连接SQLite数据库的代码示例:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///example.db'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

db.create_all()

u = User('test', 'test@test.com')
db.session.add(u)
db.session.commit()

users = User.query.all()

for user in users:
    print(user.name, user.email)

在上面的示例中,只需将数据库URI更改为sqlite:///example.db即可连接SQLite数据库。

示例2:连接MySQL数据库

下面是一个连接MySQL数据库的代码示例:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://username:password@host:port/dbname'
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True)
    email = db.Column(db.String(120), unique=True)

    def __init__(self, name, email):
        self.name = name
        self.email = email

    def __repr__(self):
        return '<User %r>' % self.name

db.create_all()

u = User('test', 'test@test.com')
db.session.add(u)
db.session.commit()

users = User.query.all()

for user in users:
    print(user.name, user.email)

在上面的示例中,只需将数据库URI更改为mysql+pymysql://username:password@host:port/dbname即可连接MySQL数据库。

以上就是Python Flask和SQLAlchemy连接数据库的流程和示例说明。希望对您有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python flask sqlalchemy连接数据库流程介绍 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • python logging模块的使用总结

    我来详细讲解一下“Python logging模块的使用总结”。 概述 logging模块是Python自带的日志记录模块,提供了一个灵活的方式来生成自定义日志,并且可以轻松地控制日志在不同情况下的输出行为。 logging级别 在进行日志记录之前,我们需要了解一下logging提供的级别,以决定何时记录日志。logging模块提供的日志级别如下: CRIT…

    Flask 2023年5月16日
    00
  • 深度定制Python的Flask框架开发环境的一些技巧总结

    下面是详细讲解“深度定制Python的Flask框架开发环境的一些技巧总结”的攻略: 1. 安装指定版本的Flask框架 首先,在进行Flask框架的开发时,需要安装特定的版本。这可以使用pip来实现,如下所示: pip install Flask==1.1.2 这将安装Flask的1.1.2版本。请注意,版本号需要根据您的项目需求进行更改。 2. 使用虚拟…

    Flask 2023年5月15日
    00
  • python3 property装饰器实现原理与用法示例

    Property装饰器是Python中一个强大的工具,可以让我们在代码中访问属性值时加入更多的逻辑或者限制。本文将详细介绍Python3中property装饰器的实现原理和用法,并提供两个实例说明。 Property装饰器的实现原理 Python中的@property装饰器是一个装饰器工厂函数,它返回一个特殊的描述器对象。通过向类中添加这个描述器,我们可以控…

    Flask 2023年5月16日
    00
  • pycharm解决关闭flask后依旧可以访问服务的问题

    在默认的情况下,当我们启动flask应用后,如果在终端使用ctrl+c关闭了flask应用,则浏览器中再次访问会出现获取不到数据的情况,甚至报错。本文将介绍如何使用PyCharm解决这个问题。 PyCharm优雅地关闭Flask应用 作为广大Python开发者熟知并使用的IDE,PyCharm提供了非常方便的解决方案。 在PyCharm中打开Flask项目并…

    Flask 2023年5月15日
    00
  • Python Flask框架开发之运用SocketIO实现WebSSH方法详解

    本文重点介绍如何使用Python Flask框架运用SocketIO实现WebSSH,来远程连接Linux服务器。首先要明白的是,SSH是一种网络协议,用于安全地远程登录和执行命令。因此,我们要实现WebSSH,就需要使用SocketIO在Web浏览器中创建一个SSH客户端。 整个实现过程可以分为以下几个步骤: 搭建Python Flask Web框架 安装…

    Flask 2023年5月15日
    00
  • 通过Python来使用七牛云存储的方法详解

    下面是“通过Python来使用七牛云存储的方法详解”的完整攻略: 准备工作 在正式使用七牛云存储前,我们首先需要准备一些材料: 七牛云账号及对应的AccessKey和SecretKey 安装qiniu包 在安装qiniu包前,我们可以使用pip来进行安装: pip install qiniu 示例 1:上传文件到七牛云 在示例 1 中,我们将通过Python…

    Flask 2023年5月16日
    00
  • Flask框架之数据交互的实现

    Flask是一款轻巧灵活的Python Web框架,通过Flask框架搭建后端服务可以快速地进行前后端的数据交互。本文将详细讲解Flask框架中数据交互的实现完整攻略,包括使用Flask框架通过GET和POST方式实现前后端数据传递的两个具体示例。 一、GET方式实现数据交互 GET方式是HTTP请求中最常见的一种方式,我们一般通过在URL中进行上传数据来实…

    Flask 2023年5月15日
    00
  • ajax post下载flask文件流以及中文文件名问题

    下面是关于“ajax post下载flask文件流以及中文文件名问题”的完整攻略,其中包含两条示例说明。 1. AJAX post下载Flask文件流 1.1 前端实现 function downloadFile() { var xhr = new XMLHttpRequest(); xhr.open(‘POST’, ‘/download’, true); …

    Flask 2023年5月16日
    00
合作推广
合作推广
分享本页
返回顶部