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日

相关文章

  • flask框架渲染Jinja模板与传入模板变量操作详解

    下面我将为你详细讲解“flask框架渲染Jinja模板与传入模板变量操作详解”的完整攻略。 什么是Jinja模板 Jinja是Flask框架默认的模板引擎,它基于Python的模板引擎,并且使用的语法类似于Django模板引擎。 在Flask中,你可以使用Jinja将Python变量传递到模板中进行渲染,然后将渲染后的模板返回给用户的浏览器。 如何渲染Jin…

    Flask 2023年5月16日
    00
  • Flask搭建虚拟环境并运行第一个flask程序

    接下来我将给出Flask搭建虚拟环境并运行第一个Flask程序的完整攻略。这里分为以下几个步骤: 1.安装Python和Flask 首先我们需要安装Python和Flask。建议直接从Python官方网站下载最新版本的Python。然后使用pip来安装Flask,命令:pip install flask。 2.搭建虚拟环境 为了避免Python版本和依赖库的…

    Flask 2023年5月15日
    00
  • Python编程在flask中模拟进行Restful的CRUD操作

    下面我详细讲解一下“Python编程在flask中模拟进行Restful的CRUD操作”的攻略及两个示例。 入门 首先,需要安装好 Python 和 Flask。你可以在官方文档中找到相应的安装指南: Python 安装指南 Flask 安装指南 安装好之后,我们就可以开始了。 搭建项目 首先,创建一个包含 Flask 和相应依赖项的虚拟环境。可以使用 ve…

    Flask 2023年5月15日
    00
  • python3-flask-3将信息写入日志的实操方法

    下面我来详细讲解“python3-flask-3将信息写入日志的实操方法”的完整攻略。 1. 简介 在Flask应用程序中,日志可以帮助我们快速找到应用程序的问题。在日志中记录的对应的信息,有助于我们更快的定位问题并进行修复。在本文中,我们将会详细介绍如何将信息写入日志。在实现本案例时,我们会使用Python3、Flask框架,下面是示例代码。 2. 实现 …

    Flask 2023年5月15日
    00
  • Flask之请求钩子的实现

    Flask中有四个请求钩子,分别是before_first_request、before_request、after_request和teardown_request。这些钩子可以使得我们在请求处理的过程中,注入自己的代码逻辑,比如在请求之前或之后进行操作。 下面我们就逐个讲解这四个请求钩子的实现。 1. before_first_request befor…

    Flask 2023年5月15日
    00
  • jQuery实现Ajax功能分析【与Flask后台交互】

    下面详细讲解下“jQuery实现Ajax功能分析【与Flask后台交互】”的完整攻略。这个攻略主要分为以下几个部分: jQuery实现Ajax请求 与Flask后台交互 示例说明 一、jQuery实现Ajax请求 jQuery中提供了一个ajax()方法,用于发送异步请求。使用ajax()方法,可以轻松地实现Ajax请求,并且可配置许多选项来满足不同的需要。…

    Flask 2023年5月16日
    00
  • es+flask搜索小项目实现分页+高亮的示例代码

    下面我将详细讲解“es+flask搜索小项目实现分页+高亮的示例代码”完整攻略,包含两条示例说明。 示例一:使用Python Flask框架和Elasticsearch检索引擎实现搜索功能 步骤一:准备工作 安装Python Flask框架以及它的依赖包。 安装Elasticsearch检索引擎驱动程序的Python客户端库:elasticsearch-py…

    Flask 2023年5月16日
    00
  • flask使用session保存登录状态及拦截未登录请求代码

    下面是“flask使用session保存登录状态及拦截未登录请求代码”的完整攻略,包含两条示例说明。 什么是Session Session 是指用户与Web应用间的一次会话,可以用来存储在整个会话过程中需要跨越请求和响应之间一直使用的数据。 在 Flask 中,可以使用 session 对象保存用户会话数据。session 对象是一个相当有用的、用于临时存储…

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