当前位置: 首页 > news >正文

flask中写一个基础的sqlHelper类

在这里插入图片描述

写一个SQLHelper类:

from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class SQLHelper:@staticmethoddef add(record):db.session.add(record)return SQLHelper.session_commit()@staticmethoddef add_all(records):db.session.add_all(records)return SQLHelper.session_commit()@staticmethoddef delete(record):db.session.delete(record)return SQLHelper.session_commit()@staticmethoddef update():return SQLHelper.session_commit()@staticmethoddef query_all(model):return model.query.all()@staticmethoddef query_by_id(model, record_id):return model.query.get(record_id)@staticmethoddef query_by_field(model, **kwargs):return model.query.filter_by(**kwargs).all()@staticmethoddef session_commit():try:db.session.commit()except Exception as e:db.session.rollback()reason = str(e)return reason

在这个扩展的SQLHelper类中,我们添加了以下几个方法:

  • add_all():一次性添加多条记录到数据库。
  • query_all():获取表中所有的记录。
  • query_by_id():根据ID查询记录。
  • query_by_field():根据字段查询记录。

这个类提供了更全面的数据库操作,但是请注意,根据你的实际需求,你可能需要添加更多的方法。

下面是如何使用这个SQLHelper类的例子:

from flask import Flask, request
from models import Post
from sqlhelper import SQLHelper@app.route('/add_post', methods=['POST'])
def add_post():title = request.form.get('title')content = request.form.get('content')post = Post(title=title, content=content)SQLHelper.add(post)return 'Post added successfully!', 200@app.route('/get_post', methods=['GET'])
def get_post():post_id = request.args.get('id')post = SQLHelper.query_by_id(Post, post_id)if post:return f'Title: {post.title}, Content: {post.content}', 200else:return 'Post not found!', 404

在这个例子中,我们不仅添加了博客文章,还根据文章的id查询了博客文章。

http://www.lryc.cn/news/106625.html

相关文章:

  • opencv的Mask操作,选择图片中感兴趣的区域
  • 一次有趣的Webshell分析经历
  • 【NLP概念源和流】 05-引进LSTM网络(第 5/20 部分)
  • Vue没有node_modules怎么办
  • 企业级高负载web服务器-Tomcat小项目
  • 《golang设计模式》第一部分·创建型模式-03-建造者模式(Builder)
  • git 忽略掉不需要的文件
  • 摄像机sd卡格式化怎么恢复数据?简单五步轻松解决
  • 1-4 AUTOSAR方法论--开发流程
  • Win10查询硬盘序列号
  • 减少错误和重复工作:PDM系统的智能排错功能
  • 【面试题】作用域面试题
  • 08 定时器(下)
  • C++设计模式之适配器设计模式
  • Maven项目解决cannot resolve plugin maven-deploy-plugin:2.7
  • Postgresql源码(110)分析dsm动态共享内存分配与共享内存mq实例
  • 51单片机学习--蜂鸣器播放音乐
  • 【Vue组件eval方法的使用】
  • C++ 多文件结构和编译预处理命令
  • QT实现中英文键盘
  • java中并发编程CompletableFuture和supplyAsync的用法
  • chrony服务器
  • 春秋云镜 CVE-2021-24762
  • K8s中的Service
  • [软件工程] 全局分析规格说明书模板
  • 【JAVASE】封装
  • Java多线程(四)
  • Linux 文件系统预留空间
  • 篇一:单例模式:C++中的独一无二
  • JVM之内存结构