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日

相关文章

  • Flask深入了解Jinja2引擎的用法

    首先介绍一下Jinja2引擎,它是一个基于Python的模板引擎,常用于web开发中生成HTML页面。 一、Jinja2引擎的基本用法 在Flask中,可以通过实例化Jinja2对象,将其与app关联,来使用Jinja2引擎。示例代码如下: from flask import Flask, render_template from jinja2 import…

    Flask 2023年5月15日
    00
  • Django项目如何获得SSL证书与配置HTTPS

    下面来详细讲解 “Django 项目如何获得 SSL 证书与配置 HTTPS”。 获得 SSL 证书 要获得 SSL 证书,我们可以利用 Let’s Encrypt 为我们提供的免费 SSL 证书服务。 安装 Certbot 工具 首先,我们需要安装 Certbot 工具。Certbot 是一个用于从 Let’s Encrypt 自动获取 SSL 证书的工具…

    Flask 2023年5月15日
    00
  • 在 Django/Flask 开发服务器上使用 HTTPS

    使用HTTPS是现代Web开发中必不可少的安全手段之一,可以加密Web应用程序和服务器之间的通信,防止敏感数据被恶意截取。在Django/Flask开发服务器上使用HTTPS,可以提高Web应用程序的安全性。下面是详细的攻略: 一、Django 1. 生成证书和密钥 使用openssl在本地主机上生成自签名ssl证书和密钥文件: $ openssl req …

    Flask 2023年5月15日
    00
  • Python+Flask实现自定义分页的示例代码

    笔者将为你详细讲解“Python+Flask实现自定义分页的示例代码”的完整攻略。 简介 在Flask开发Web应用过程中,实现分页功能可能会涉及到数据库查询、分页计算等多种操作,本文将介绍使用Python+Flask框架实现自定义分页的示例代码并解释实现细节。 示例1:自定义分页函数 实现思路 自定义分页函数主要的目的是减少重复代码,实现通用分页逻辑,具体…

    Flask 2023年5月15日
    00
  • Flask接收上传图片方法实现

    下面是Flask接收上传图片的完整攻略。 准备工作 首先,我们需要先安装Flask的插件Flask-Uploads,可以通过pip直接安装,命令如下: pip install Flask-Uploads 安装完成后,在Flask的应用中引入该插件: from flask_uploads import UploadSet, configure_uploads,…

    Flask 2023年5月16日
    00
  • python miniWeb框架搭建过程详解

    当我们要搭建自己的网站,动态web框架是不可或缺的。Python是一种非常流行的编程语言,它拥有丰富的web框架,比如Flask、Django等。而如果我们想要更深入了解web框架的原理,也可以尝试手动搭建一个miniWeb框架。下面,我们将分为以下几个步骤,详细讲解Python miniWeb框架的搭建过程: 搭建服务器 首先,我们需要一个能够运行Pyth…

    Flask 2023年5月16日
    00
  • Flask使用SocketIO实现WebSocket与Vue进行实时推送

    针对这个问题,我会提供一个详细的攻略,分为以下几个部分: 简介 准备工作 示例一:使用Flask-SocketIO实现WebSocket实时推送 示例二:使用Vue.js进行实时推送展示 总结 接下来,我将详细讲解每一个部分。 1. 简介 在Web开发中,实时推送是一个非常重要的功能,例如聊天室、股票行情、即时通讯等,这些功能都需要实时地使用WebSocke…

    Flask 2023年5月16日
    00
  • Python Flask入门之模板

    下面是Python Flask入门之模板的完整攻略: 1. 概述 Python Flask是一种轻量级的Web框架,提供了非常简单的方式来构建Web应用程序。在Flask中,模板是用来定义页面布局、数据展示和用户输入的一种方法。通过使用模板,可以在不同的页面中嵌入一些公共的HTML代码、样式等。本文将是一个Python Flask模板入门教程。 2. 准备工…

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