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

flask-admin modelview 中重写get_query函数

背景:

flask-admin框架中提供的模型视图默认是显示表实体中的所有列表数据,如果想通过某种条件限制初始列表数据,那么久需要重写一些方法才能实现。

材料:

制作:

视图源码:

    def get_query(self):return super(MyAiConfigView, self).get_query().filter(AiConfig.status == 0)

效果:

1、过滤前

2、过滤后

经验:

1、实现初始化过滤,我们可以想到的和百度上搜到的一定是重写def get_list(self, page, sort_field, sort_desc, search, filters, page_size=20) 来实现,这种方法的确可行,但这样处理不当会破坏原

    # def get_list(self, page, sort_field, sort_desc, search, filters, page_size=20):#     query = self.get_query()#     count_query = self.get_count_query() if not self.simple_list_pager else None#     query = query.all()#     return None, query

始的配置项,这一点可以通过源码看出

                 execute=True, page_size=None):"""Return records from the database.:param page:Page number:param sort_column:Sort column name:param sort_desc:Descending or ascending sort:param search:Search query:param execute:Execute query immediately? Default is `True`:param filters:List of filter tuples:param page_size:Number of results. Defaults to ModelView's page_size. Can beoverriden to change the page_size limit. Removing the page_sizelimit requires setting page_size to 0 or False."""# Will contain join paths with optional aliased objectjoins = {}count_joins = {}query = self.get_query()count_query = self.get_count_query() if not self.simple_list_pager else None# Ignore eager-loaded relations (prevent unnecessary joins)# TODO: Separate join detection for query and count query?if hasattr(query, '_join_entities'):for entity in query._join_entities:for table in entity.tables:joins[table] = None# Apply search criteriaif self._search_supported and search:query, count_query, joins, count_joins = self._apply_search(query,count_query,joins,count_joins,search)# Apply filtersif filters and self._filters:query, count_query, joins, count_joins = self._apply_filters(query,count_query,joins,count_joins,filters)# Calculate number of rows if necessarycount = count_query.scalar() if count_query else None# Auto joinfor j in self._auto_joins:query = query.options(joinedload(j))# Sortingquery, joins = self._apply_sorting(query, joins, sort_column, sort_desc)# Paginationquery = self._apply_pagination(query, page, page_size)# Execute if neededif execute:query = query.all()return count, query

2、在源代码学习中发现了本文探讨的新大陆---get_query(self) ,下面是源码中针对该函数的例子

                class MyView(ModelView):def get_query(self):return super(MyView, self).get_query().filter(User.username == current_user.username)

经过实地验证,效果理想 

相关文章:

flask-admin modelview 中重写get_query函数

背景: flask-admin框架中提供的模型视图默认是显示表实体中的所有列表数据,如果想通过某种条件限制初始列表数据,那么久需要重写一些方法才能实现。 材料: 略 制作: 视图源码: def get_query(self):re…...

【python 逆向分析某有道翻译】分析有道翻译公开的密文内容,webpack类型,全程扣代码,最后实现接口调用翻译,仅供学习参考

文章日期:2024.12.24 使用工具:Python,Node.js 逆向类型:webpack类型 本章知识:sign模拟生成,密文的解密(webpack),全程扣代码,仅供学习参考 文章难度:低等(没…...

tensorflow_probability与tensorflow版本依赖关系

参考:Tensorflow Probability 与 TensorFlow 的版本依赖关系_tensorflow与tensorflow-probability对应版本的网址-CSDN博客 tensorflow2.10对应tensorflow_probability0.18.0,安装命令:pip install tensorflow_probability0.18.0 版本对应关…...

构建安全的用户认证系统:PHP实现

构建安全的用户认证系统:PHP实现 用户认证是任何Web应用的重要组成部分,确保只有授权用户才能访问特定资源。构建一个安全的用户认证系统需要考虑多种因素,包括密码存储、会话管理和防止常见gongji。本文将介绍如何使用PHP实现一个安全的用户…...

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比

VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比 目录 VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比预测效果基本介绍程序设计参考资料 预测效果 基本介绍 1.MATLAB实现VMD-SSA-BiLSTM、VMD-BiLSTM、BiLSTM时间序列预测对比; 2.单变量时间序列预测 就是先vmd把变…...

天融信网络架构安全实践

1、医院客户想通过等保2.0三级,推荐哪几款网络安全产品?(至少6个) TopSAg(运维安全审计系统) TopNAC(网络准入系统) TopEDR(终端威胁防御系统) TDSM-SBU(存储备份一体机…...

腾讯云云开发 Copilot具有以下优势

与其他代码生成工具相比,腾讯云云开发 Copilot具有以下优势: 功能特性方面 自然语言处理能力更强:许多代码生成工具仅能实现简单的代码补全或根据特定模板生成代码,而云开发 Copilot可直接通过自然语言生成完整的小程序/web全栈…...

electron-vite【实战系列教程】

创建项目 安装必要的插件 UI 库 element-plus npm install element-plus --save 安装 element-plus 图标 npm install element-plus/icons-vue 安装插件 – 自动注册组件 vs 自动导入框架方法 npm install -D unplugin-vue-components unplugin-auto-import electron.vite.conf…...

【微信小程序】微信小程序中的异步函数是如何实现同步功能的

在微信小程序中,虽然很多 API 都是异步的,但可以通过一些方法来实现类似同步的功能。以下是几种常见的方法: 1. 使用 async/await async/await 是 ES2017 引入的语法糖,它基于 Promise 来实现异步操作的同步化写法。 示例代码 …...

贪心算法(三)

目录 一、k次取反后最大化的数组和 二、优势洗牌 三、最长回文串 四、增减字符串匹配 一、k次取反后最大化的数组和 k次取反后最大化的数组和 贪心策略&#xff1a; 解题代码&#xff1a; class Solution { public:int largestSumAfterKNegations(vector<int>&am…...

uniApp打包H5发布到服务器(docker)

使用docker部署uniApp打包后的H5项目记录&#xff0c;好像和VUE项目打包没什么区别... 用HX打开项目&#xff0c;首先调整manifest.json文件 开始用HX打包 填服务器域名和端口号~ 打包完成后可以看到控制台信息 我们可以在web文件夹下拿到下面打包好的静态文件 用FinalShell或…...

【AI落地应用实战】篡改检测技术前沿探索——从基于检测分割到大模型

在数字化洪流席卷全球的当下&#xff0c;视觉内容已成为信息交流与传播的核心媒介&#xff0c;然而&#xff0c;随着PS技术和AIGC技术的飞速发展&#xff0c;图像篡改给视觉内容安全带来了前所未有的挑战。 本文将探讨篡改检测技术的现实挑战&#xff0c;分享篡改检测技术前沿…...

使用 VSCode 学习与实践 LaTeX:从插件安装到排版技巧

文章目录 背景介绍编辑器编译文件指定输出文件夹 usepackagelatex 语法列表插入图片添加参考文献 背景介绍 最近在写文章&#xff0c;更喜欢latex的论文引用。然后开始学习 latex。 编辑器 本文选择vscode作为编辑器&#xff0c;当然大家也可以尝试overleaf。 overleaf 有网…...

使用scrapy框架爬取微博热搜榜

注&#xff1a;在使用爬虫抓取网站数据之前&#xff0c;非常重要的一点是确保遵守相关的法律、法规以及目标网站的使用条款。 &#xff08;最底下附下载链接&#xff09; 准备工作&#xff1a; 安装依赖&#xff1a; 确保已经安装了Python环境。 使用pip安装scrapy&#xff…...

瑞吉外卖项目学习笔记(七)新增菜品、(批量)删除菜品

瑞吉外卖项目学习笔记(一)准备工作、员工登录功能实现 瑞吉外卖项目学习笔记(二)Swagger、logback、表单校验和参数打印功能的实现 瑞吉外卖项目学习笔记(三)过滤器实现登录校验、添加员工、分页查询员工信息 瑞吉外卖项目学习笔记(四)TableField(fill FieldFill.INSERT)公共字…...

es快速扫描

介绍 Elasticsearch简称es&#xff0c;一款开源的分布式全文检索引擎 可组建一套上百台的服务器集群&#xff0c;处理PB级别数据 可满足近实时的存储和检索 倒排索引 跟正排索引相对&#xff0c;正排索引是根据id进行索引&#xff0c;所以查询效率非常高&#xff0c;但是模糊…...

前端对页面数据进行缓存

页面录入信息&#xff0c;退出且未提交状态下&#xff0c;前端对页面数据进行存储 前端做缓存&#xff0c;一般放在local、session和cookies里面&#xff0c;但是都有大小限制&#xff0c;如果页面东西多&#xff0c;比如有上传的图片、视频&#xff0c;浏览器会抛出一个Quota…...

leetCode322.零钱兑换

题目&#xff1a; 给你一个整数数组coins,表示不同面额的硬币&#xff1b;以及一个整数amount,表示总金额。 计算并返回可以凑成总金额所需的最少的硬币个数。如果没有任何一种硬币组合能组成总金额&#xff0c;返回-1。 你可以认为每种硬币的数量是无限的。 示例1&#xff1…...

jsp-servlet开发

STS中开发步骤 建普通jsp项目过程 1.建项目&#xff08;非Maven项目&#xff09; new----project----other----Web----Dynamic Web Project 2.下载包放到LIB目录中,如果是Maven项目可以自动导包&#xff08;pom.xml中设置好&#xff09; 3.设置工作空间&#xff0c;网页…...

从零玩转CanMV-K230(7)-I2C例程

文章目录 前言一、IIC API二、示例总结 前言 K230内部包含5个I2C硬件模块&#xff0c;支持标准100kb/s&#xff0c;快速400kb/s模式&#xff0c;高速模式3.4Mb/s。 通道输出IO配置参考IOMUX模块。 一、IIC API I2C类位于machine模块下。 i2c I2C(id, freq100000) 【参数】…...

Bypass Paywalls Clean实用指南:解锁付费新闻的技术解析

Bypass Paywalls Clean实用指南&#xff1a;解锁付费新闻的技术解析 在当今信息时代&#xff0c;众多优质新闻媒体设置了付费墙机制&#xff0c;限制了用户对深度内容的访问。Bypass Paywalls Clean作为一款技术解决方案&#xff0c;为读者提供了突破这些限制的可能性。本文将深…...

大数据之路--维度设计

一、维度设计基础1、维度的基本概念维度是维度建模的基础和灵魂。在维度建模中&#xff0c;将度量称为事实&#xff0c;将环境描述为维度&#xff0c;唯独用于分析事实所需要的多样环境。维度所包含的表示维度的列称为维度属性。维度属性是查询约束条件、分组和报表标签生成的基…...

3步解决Zotero PDF Translate翻译失效的终极指南:快速恢复学术研究工具

3步解决Zotero PDF Translate翻译失效的终极指南&#xff1a;快速恢复学术研究工具 【免费下载链接】zotero-pdf-translate Translate PDF, EPub, webpage, metadata, annotations, notes to the target language. Support 20 translate services. 项目地址: https://gitcode…...

YOLO11+Qwen3.5如何实现视频内容审核

利用“YOLO11 Qwen3.5”构建视频内容审核系统&#xff0c;核心思路是采用“小模型感知 大模型认知”的双层架构。YOLO11负责高效提取视频中的结构化信息&#xff0c;Qwen3.5则基于这些信息进行复杂的语义理解和违规判定。 &#x1f3db;️ 系统总体架构 一个完整的审核系统通…...

intv_ai_mk11行业落地案例:教育内容总结、电商文案生成、开发需求转代码

intv_ai_mk11行业落地案例&#xff1a;教育内容总结、电商文案生成、开发需求转代码 1. 教育内容总结应用实践 1.1 教育场景痛点分析 教育工作者经常面临海量教学资料的整理和提炼工作。传统人工总结方式存在效率低下、主观性强、格式不统一等问题。以某在线教育平台为例&am…...

线性回归——工龄与平均工资关系分析

项目实训&#xff1a;工龄与平均工资关系分析 项目实训 1. 实训目的 &#xff08;1&#xff09;理解数据分析的过程。 &#xff08;2&#xff09;掌握机器学习常用库&#xff08;NumPy、Pandas、Matplotlib&#xff09;的使用方法。 &#xff08;3&#xff09;掌握使用Sklearn训…...

2026办公软件终极指南:AI正在重写你的工作台

效率革命已至&#xff0c;你的工具该升级了打开任何一个办公软件&#xff0c;你都会发现一个显著的变化——AI不再是藏在角落里的“实验性功能”&#xff0c;而是像回车键一样自然地融入了每一次敲击。AI已经在重写整个Office软件栈。 从文档创作到数据处理&#xff0c;从会议纪…...

Open Interpreter多场景落地:浏览器操控与媒体处理实操手册

Open Interpreter多场景落地&#xff1a;浏览器操控与媒体处理实操手册 1. 开篇&#xff1a;为什么你需要Open Interpreter&#xff1f; 你是不是经常遇到这样的情况&#xff1a;想要批量处理一些文件&#xff0c;但不想写复杂的脚本&#xff1b;或者需要从网站抓取数据&…...

华为OD机试真题 新系统2026-04-01 C++实现【空间占用计算】

目录 题目 思路 Code 题目 员工A的磁盘空间经常被耗尽,他需要找到占用空间最大的目录或文件,然后决定如何清理文件释放空间。给定某一目录,请编写程序帮助他统计该目录内一级子目录和文件的占用空间,并返回目标目录一级子项(文件或子目录)中占用空间最大的项。 规则说明…...

Janus-Pro-7B集成Dify实战:构建企业级AI应用工作流

Janus-Pro-7B集成Dify实战&#xff1a;构建企业级AI应用工作流 最近和几个做企业服务的朋友聊天&#xff0c;他们都在头疼一件事&#xff1a;公司里各种业务场景都想用上AI&#xff0c;比如自动审核用户上传的图片、根据商品图生成营销文案&#xff0c;但真要动手做&#xff0…...