Python flask sqlalchemy的简单使用及常用操作

本文将为大家介绍Python Flask结合SQLAlchemy的简单使用及常用操作,内容分为以下几个部分:

  1. Flask简介
  2. SQLAlchemy简介
  3. 简单使用Flask和SQLAlchemy
  4. 常用操作
  5. 示例说明
  6. 总结

1. Flask简介

Flask是一个轻量级的Python web开发框架,它的核心思想是保持简单和灵活。Flask的特点是基于Werkzeug WSGI工具箱和Jinja2模板引擎,使用Python语言编写。

2. SQLAlchemy简介

SQLAlchemy是一款Python的ORM库,全称Object Relational Mapping,即对象关系映射,它采用了类似于Hibernate的数据映射模式,将关系数据库的表结构映射到了对象上。使用SQLAlchemy可以大大减少编写SQL语句的时间,同时还可以让Python程序员更加方便地使用关系型数据库。

3. 简单使用Flask和SQLAlchemy

3.1 安装Flask和SQLAlchemy

可以使用pip安装Flask和SQLAlchemy:

pip install Flask
pip install SQLAlchemy

3.2 构建Flask应用

导入Flask和SQLAlchemy库后,可以像下面这样构建一个简单的Flask应用:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

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

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

3.3 定义模型

定义一个模型类,用于表示数据库中的一个表:

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), 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

3.4 创建数据库表

继承自db.Model的类都可以通过db.create_all()方法来创建对应的数据表。对于本文中的User模型,可以通过如下命令来创建:

from app import db

db.create_all()

3.5 操作数据库

Flask和SQLAlchemy一起使用时,可以很方便地执行CRUD操作。下面是操作数据库的一些常用方法:

# 添加一条记录
user = User('admin', 'admin@example.com')
db.session.add(user)
db.session.commit()

# 查询所有记录
users = User.query.all()

# 根据主键查询
user = User.query.get(1)

# 根据条件查询
user = User.query.filter_by(name='admin').first()

# 修改一条记录
user = User.query.get(1)
user.email = 'new_email@example.com'
db.session.commit()

# 删除一条记录
user = User.query.get(1)
db.session.delete(user)
db.session.commit()

4. 常用操作

4.1 数据库连接配置

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://user:password@server:port/database'

4.2 定义模型

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)

4.3 创建表格

db.create_all()

4.4 插入数据

user1 = User(id=1, name='Alice', age=23)
user2 = User(id=2, name='Bob', age=24)
db.session.add_all([user1, user2])
db.session.commit()

4.5 查询数据

# 获取所有用户
users = User.query.all()

# 获取id为1的用户
user = User.query.get(1)

# 获取姓名为'Alice'的用户
users = User.query.filter_by(name='Alice')

# 获取姓名包含'B'的用户
users = User.query.filter(User.name.like('%B%'))

4.6 更新数据

user = User.query.filter_by(id=1).first()
user.age = 24
db.session.commit()

4.7 删除数据

user = User.query.filter_by(id=1).first()
db.session.delete(user)
db.session.commit()

5. 示例说明

下面是两个简单的示例:

5.1 Python Flask和SQLAlchemy实现注册登录示例

实现注册和登录的功能,使用MySQL数据库存储用户信息。具体代码实现可以参考这个仓库: https://github.com/luozijian/flask-login-register

5.2 Python Flask和SQLAlchemy实现博客网站示例

实现一个简单的博客网站,包含了博客的创建、编辑、删除等操作。具体代码实现可以参考这个仓库: https://github.com/miguelgrinberg/flasky

6. 总结

本文介绍了Python Flask和SQLAlchemy的简单使用及常用操作。Flask是一个轻量级的Python web开发框架,而SQLAlchemy是一款Python的ORM库,两者结合可以大大减少编写SQL语句的时间,让Python程序员更加方便地使用关系型数据库。在实际开发过程中,我们可以使用Flask和SQLAlchemy来构建Web应用和互联网服务。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python flask sqlalchemy的简单使用及常用操作 - Python技术站

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

相关文章

  • Python的Flask框架中@app.route的用法教程

    下面是Python Flask框架中@app.route的用法教程攻略及示例说明。 什么是@app.route @app.route是一个装饰器,它用来注册一个网页的URL路径,每次当用户发送请求到该URL时,相应的函数就会被执行。这个装饰器通常用于Flask中的视图函数。 @app.route所装饰的函数将会作为视图函数,当访问被装饰的URL路径时,将触发…

    Flask 2023年5月15日
    00
  • Django使用HttpResponse返回图片并显示的方法

    当我们需要在Django框架中展示一张图片或者返回一张图片时,可以使用HttpResponse将图片内容以二进制格式返回给浏览器。下面是展示如何使用HttpResponse返回图片并显示的方法的完整攻略: 方法1:读取图片文件并返回 首先在Django的视图函数中,导入以下模块: python from django.http import HttpResp…

    Flask 2023年5月16日
    00
  • python实现一个简单的web应用框架

    下面是关于Python实现一个简单的Web应用框架的完整攻略。 什么是Web应用框架? Web应用框架(web application framework)是一种软件框架,为用户提供了一个实现Web应用的基础结构,方便程序员开发Web应用。框架中的组件可以自动执行一些常用的任务,如数据验证、路由、用户认证、数据存储等,使得开发人员能够专注于业务逻辑的实现,而…

    Flask 2023年5月16日
    00
  • Python的Flask框架应用程序实现使用QQ账号登录的方法

    下面我将为您提供完整的攻略,以Flask框架为例,讲解如何使用QQ账号登录。 准备工作 在开始之前,我们需要准备一些工具和环境: Python 3.x Flask框架 QQ互联开发平台 Flask-OAuthlib 库 其中,Flask框架和Flask-OAuthlib库可以使用pip命令进行安装,命令如下: pip install flask pip in…

    Flask 2023年5月15日
    00
  • Python Web框架Flask信号机制(signals)介绍

    下面我将为您详细讲解“Python Web框架Flask信号机制(signals)介绍”的完整攻略。 什么是Flask信号机制 Flask信号机制(signals)是一个事件处理系统,可以在某些预定义的时机触发自定义的函数。通过使用信号机制,我们可以轻松地将应用程序分解为独立且可重用的组件。 Flask信号机制是建立在blinker库之上的,这是一个事件通知…

    Flask 2023年5月15日
    00
  • flask-script模块的具体使用

    Flask-Script是一个与Flask集成的命令行解析器,使得开发者可以轻松地通过命令行来对Flask应用程序进行管理。 安装Flask-Script 在使用Flask-Script之前,需要将其安装到Flask应用程序中。在终端中输入以下命令来安装Flask-Script: pip install flask-script 使用Flask-Script…

    Flask 2023年5月16日
    00
  • Python SqlAlchemy动态添加数据表字段实例解析

    下面我将详细讲解“Python SqlAlchemy动态添加数据表字段实例解析”的完整攻略,包含两条示例说明。 1. SqlAlchemy动态添加数据表字段的实现 SqlAlchemy是Python的一个ORM(Object Relational Mapping)框架,用于操作关系型数据库。在SqlAlchemy中实现动态添加数据表字段的方法如下: (1)定…

    Flask 2023年5月16日
    00
  • Python 工具类实现大文件断点续传功能详解

    Python 工具类实现大文件断点续传功能详解 简介 在文件上传或下载过程中,如果遇到大文件,如果发生传输失败,需要重新传输的情况会非常不方便,甚至无法实现。为了解决这种问题,我们可以实现大文件断点续传功能,使文件上传或下载可以随时中断和恢复。 实现流程 大文件断点续传的实现流程如下: 设置支持 range 的Range头,支持服务器返回指定范围的数据。 获…

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