SQLAlchemy怎么用于Python网页版开发

来源:PHP编程网作者:弥生美月头衔:网络博主
导读:本期聚焦于小伙伴创作的《SQLAlchemy怎么用于Python网页版开发》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《SQLAlchemy怎么用于Python网页版开发》有用,将其分享出去将是对创作者最好的鼓励。

SQLAlchemy是Python生态中非常成熟的ORM框架,它可以将数据库表映射为Python类,把表中的行映射为类的实例,让开发者不需要直接编写SQL语句就能完成数据库操作,在Python网页开发中应用十分广泛。

SQLAlchemy怎么用于Python网页版开发

环境准备与安装

首先需要在Python环境中安装SQLAlchemy,如果你使用的是Flask或者Django这类网页框架,也可以根据需要安装对应的扩展包。基础安装命令如下:

pip install sqlalchemy
# 如果使用Flask框架,可额外安装Flask-SQLAlchemy
pip install flask-sqlalchemy

基础配置与连接

使用SQLAlchemy前需要先创建数据库引擎,配置数据库连接信息。以下是连接SQLite数据库的基础配置示例,你也可以替换为MySQL、PostgreSQL等其他数据库的连接字符串:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

# 创建数据库引擎,这里使用SQLite作为示例
# 如果是MySQL,连接字符串格式为 mysql+pymysql://用户名:密码@主机地址/数据库名
engine = create_engine('sqlite:///web_db.db', echo=True)
# 创建会话类
Session = sessionmaker(bind=engine)
# 创建会话实例,后续所有数据库操作都通过会话完成
session = Session()

定义数据模型

数据模型是SQLAlchemy的核心,每个模型类对应数据库中的一张表,类的属性对应表的字段。以下定义一个用户表模型,包含id、用户名、邮箱三个字段:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

# 创建基类
Base = declarative_base()

class User(Base):
    # 指定对应的表名
    __tablename__ = 'users'
    # 定义字段
    id = Column(Integer, primary_key=True, autoincrement=True)
    username = Column(String(50), nullable=False, unique=True)
    email = Column(String(100), nullable=False)

# 创建所有定义的表,首次运行时执行即可
Base.metadata.create_all(engine)

基础增删改查操作

新增数据

新增数据只需要创建模型实例,添加到会话并提交即可:

# 创建用户实例
new_user = User(username='test_user', email='test@ipipp.com')
# 添加到会话
session.add(new_user)
# 提交会话,保存到数据库
session.commit()

查询数据

SQLAlchemy提供了丰富的查询方法,以下是常见的查询示例:

# 查询所有用户
all_users = session.query(User).all()
# 查询id为1的用户
user_by_id = session.query(User).filter_by(id=1).first()
# 查询用户名为test_user的用户
user_by_name = session.query(User).filter(User.username == 'test_user').first()

更新数据

更新数据先查询到对应的实例,修改属性后提交会话:

# 查询要更新的用户
user = session.query(User).filter_by(id=1).first()
if user:
    # 修改属性
    user.email = 'updated@ipipp.com'
    # 提交修改
    session.commit()

删除数据

删除数据先查询到实例,再删除并提交会话:

# 查询要删除的用户
user = session.query(User).filter_by(id=1).first()
if user:
    # 删除实例
    session.delete(user)
    # 提交删除操作
    session.commit()

与网页框架整合示例

以Flask框架为例,整合SQLAlchemy的方式如下,其他框架的整合逻辑类似:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
# 配置数据库连接
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///web_db.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
# 初始化SQLAlchemy
db = SQLAlchemy(app)

# 定义模型
class Article(db.Model):
    __tablename__ = 'articles'
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(100), nullable=False)
    content = db.Column(db.Text, nullable=False)

# 创建表
with app.app_context():
    db.create_all()

# 定义路由,处理网页请求
@app.route('/add_article')
def add_article():
    new_article = Article(title='测试文章', content='这是文章内容')
    db.session.add(new_article)
    db.session.commit()
    return '文章添加成功'

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

注意事项

  • 每次数据库操作完成后,记得及时提交会话或者回滚异常操作,避免数据不一致。
  • 生产环境中不要开启引擎的echo参数,该参数会打印所有SQL语句,影响性能。
  • 会话对象不是线程安全的,在多线程的网页开发中,每个请求应该创建独立的会话实例。
  • 定义模型时,合理设置字段的约束条件,比如非空、唯一约束,减少无效数据入库。

SQLAlchemyPython网页开发ORM修改时间:2026-07-08 17:42:25

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。