本文将为大家介绍Python Flask结合SQLAlchemy的简单使用及常用操作,内容分为以下几个部分:
- Flask简介
- SQLAlchemy简介
- 简单使用Flask和SQLAlchemy
- 常用操作
- 示例说明
- 总结
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技术站