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的Flask框架中配置多个子域名的方法讲解

    下面我就为您讲解Python的Flask框架中配置多个子域名的方法以及两个示例说明。 配置多个子域名的方法讲解 在Flask中配置多个子域名需要用到Flask中的蓝图(Blueprint)。蓝图是 Flask 中一个很重要的概念,它提供了一种组织 Flask 应用的方式,可以让开发者把应用分成一些比较小的部分。 具体步骤: 首先,我们需要在Flask应用中定…

    Flask 2023年5月16日
    00
  • Flask框架运用Axios库实现前后端交互详解

    这里是”Flask框架运用Axios库实现前后端交互详解”的完整攻略。 简介 在网页开发中,前后端分离已经成为了一种趋势。而实现前后端的交互则是非常重要的一部分。Axios库是一个基于Promise的HTTP客户端,可以用在浏览器和Node.js中。本文将详细介绍如何在Flask框架中运用Axios库实现前后端交互。 前提条件 在开始之前,需要确保以下条件满…

    Flask 2023年5月16日
    00
  • Flask项目的部署的实现步骤

    一、Flask项目的部署实现步骤 Flask是一个轻量级的Python Web框架,部署一个Flask应用涉及到的步骤通常包括以下几个方面: 1. 配置服务器环境因为Flask要运行在服务器上,所以必须要先确保服务器环境符合Flask运行的要求,包括搭建有效的Python环境、配置Web服务器等。 2. 安装Flask在服务器上安装Flask库,可以利用pi…

    Flask 2023年5月15日
    00
  • 浅谈Python flask框架

    浅谈Python Flask框架 什么是Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架,其主要特点是简单、易学、易扩展,以及具有高度的灵活性。Flask框架的设计借鉴了有关 Ruby 的 Sinatra 框架,其路由系统灵活而强大,支持视图函数、Blueprint、同步、异步等多种方式的实现。 如何使用Flask 安装Flas…

    Flask 2023年5月15日
    00
  • JQuery异步post上传表单数据标准化模板

    JQuery异步post上传表单数据标准化模板是一种常用的前端技术。本攻略将详细讲解此过程,并提供两条示例说明。具体步骤如下: 一、设置请求 url 和 data 请求 url 可以指向一个后台处理请求的页面。 data 是现有表单的序列化数据和其他要提交的数据的对象。对象的主要属性应与表单中的输入字段的“name”属性匹配。 二、设置异步ajax请求 设置…

    Flask 2023年5月16日
    00
  • Python的Flask框架中SQLAlchemy使用时的乱码问题解决

    首先我先介绍一下Flask框架和SQLAlchemy。 Flask是一个轻量级的Web应用框架,它使用Python语言编写,能够快速开发实现功能简单的Web应用程序。SQLAlchemy则是Python下的一款ORM框架,通过SQLAlchemy,我们不再需要自己写SQL语句来操作数据库,而只需要使用Python语言对ORM框架提供的库函数进行操作即可。 在…

    Flask 2023年5月16日
    00
  • Flask搭建一个API服务器的步骤

    下面我将详细讲解使用Flask框架搭建API服务器的步骤。 简介 Flask 是一个“微型”Python Web框架。它非常简单易学且具有高度的灵活性。本文将介绍如何使用 Flask 框架搭建一个API服务器。 步骤 1. 安装 Flask 在开始之前,请确保您的电脑上已经安装了 Python 3.x,并且安装了 Flask 框架。您可以使用以下命令安装 F…

    Flask 2023年5月15日
    00
  • Python的Flask框架中集成CKeditor富文本编辑器的教程

    下面我来详细讲解如何在Python的Flask框架中集成CKeditor富文本编辑器。 步骤一:安装Flask和CKEditor库 首先确保已经安装了Flask和CKEditor库。如果没有安装,可以使用以下命令进行安装: pip install flask-ckeditor 步骤二:配置Flask应用 在Flask应用的配置文件中,添加以下代码段: fro…

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