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

yizhihongxing

下面我将详细讲解如何使用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日

相关文章

  • windows下Docker部署Flask的详细教程

    下面我将为您提供windows下Docker部署Flask的详细教程,包含两个示例说明。 环境准备 首先,我们需要在windows系统上安装好以下的环境,才能顺利地进行后续的操作:* Docker Desktop for Windows,可以通过官方网站下载安装包并安装 https://www.docker.com/products/docker-deskt…

    Flask 2023年5月15日
    00
  • python用Pygal如何生成漂亮的SVG图像详解

    准备工作 Pygal是一个轻量级的Python图表库,支持生成各种类型的矢量图像,并且可以直接输出成SVG格式文件。在使用Pygal之前,需要先安装该库: pip install pygal 创建一个简单的Pygal图表 首先,我们可以创建一个简单的Pygal图表,来熟悉一下Pygal的使用方法。以下是一个创建柱状图的示例代码: import pygal #…

    Flask 2023年5月16日
    00
  • Flask框架运用WTForms实现用户注册的示例详解

    要完整讲解“Flask框架运用WTForms实现用户注册的示例详解”,可以分为以下两个步骤: 一、安装和使用WTForms模块 在终端运行以下命令来安装WTForms模块: pip install WTForms 在Flask的app.py中导入WTForms模块: from flask_wtf import FlaskForm from wtforms i…

    Flask 2023年5月16日
    00
  • Flask 静态文件的配置方法(详解版)

    静态文件的意义 在 Web 应用开发中,静态文件(如图片、CSS、JavaScript 文件)是不随着请求数据的变化而改变的文件。这些文件的位置在 Web 应用的根目录下的 static 文件夹中,静态文件是浏览器端显示的一些基础组件,例如背景图片、图标、样式等。通过使用静态文件,Web 应用可以在浏览器端呈现更好的视觉效果和用户体验。 Flask 程序中静…

    Flask 2023年3月13日
    00
  • Flask框架搭建虚拟环境的步骤分析

    下面是“Flask框架搭建虚拟环境的步骤分析”的完整攻略。 步骤1:安装虚拟环境工具 虚拟环境工具可以帮助我们在同一台机器上管理多个 Python 项目所需的不同 Python 环境、包依赖、库版本等。这里推荐使用 virtualenv 工具。 安装 virtualenv 的命令如下: pip install virtualenv 安装成功后可以验证一下: …

    Flask 2023年5月15日
    00
  • 零基础怎样才能系统快速的学会Python

    针对“零基础怎样才能系统快速的学会Python”的问题,我可以给出以下完整攻略: 一、学习准备 在学习Python之前,需要先了解一些基本的编程概念和计算机基础知识: 编程语言的基础语法和常用数据类型; 算法和数据结构的基础知识; 计算机组成原理和操作系统基础知识; 使用代码编辑器和终端工具的基本操作。 二、学习步骤 1. 选择入门教程和学习资源 选择适合自…

    Flask 2023年5月15日
    00
  • django和flask哪个值得研究学习

    Django和Flask的区别 Django和Flask都是Python中流行的Web框架,但是它们在使用方式上有着很大的不同。 Django Django是一个完整的Web框架,提供了一整套Web开发的解决方案。Django包括了ORM、模板引擎、路由系统、Cookie/Session等常用组件,所以在创建一个Web应用时,可以省略掉很多低层次的工作。 D…

    Flask 2023年5月15日
    00
  • 使用Flask-Cache缓存实现给Flask提速的方法详解

    下面是“使用Flask-Cache缓存实现给Flask提速的方法详解”的完整攻略: 1. 什么是Flask-Cache? Flask-Cache是一个Flask框架的缓存扩展,能够方便地缓存常用的数据,如SQL查询结果、API返回结果、视图函数、模板渲染结果等,从而提高网站的性能。Flask-Cache支持多种缓存类型,包括内存缓存、文件缓存、Redis缓存…

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