`
ryan.liu
  • 浏览: 136363 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

flask的MethodView封装

 
阅读更多

 

# -*- coding: utf-8 -*-

from flask import request, render_template, Blueprint
from flask.views import MethodView
from flaskext.principal import RoleNeed, Permission
from models import User
from utils.pagination import Pagination


admin = Permission(RoleNeed('admin'))
auth = Permission(RoleNeed('authenticated'))
null = Permission(RoleNeed('null'))


class SeniorBlueprint(Blueprint):

    def expose(self, rule, **options):
        def decorator(v):
            endpoint = options.pop("endpoint", v.__name__)
            options["view_func"] = v.as_view(endpoint)
            options["methods"] = v.methods
            self.add_url_rule(rule, **options)
            return v
        return decorator


class SeniorMethodView(MethodView):

    def paginate(self, view):
        page_no = int( request.values.get("page", 1) )
        page_size = int( request.values.get("page_size", 30) )
        return Pagination(view).paginate(page_no, page_size)


user_module = SeniorBlueprint("user", __name__)

@user_module.expose('list/<role>/')
@user_module.expose('list/')
class UserAPI(SeniorMethodView):
    methods = ["GET", "POST"]
    decorators = [ auth.require(403) ] #要求登录

    def get(self, role=""):
        if role == "admin":
            params = dict(is_superuser=True, is_active=True)
        elif role:
            params = dict(role=role, is_active=True)
        else:
            params = dict(is_active=True)
        view = Session().query(User).filter_by(**params).order_by("-id")
        page = self.paginate(view)
        return render_template("user/list.html", page=page)

    post = get
分享到:
评论

相关推荐

    BGA132-152 NAND FLASH封装(Altium Designer PCB封装库)

    Altium Designer PCB封装库

    常用FLASH存储器原理图封装库(AD库)_ad15原理图如何添加封装

    常用FLASH存储器原理图封装库(AD库),主要包含27C011-27C513,28F010,28F256,28F512,A28F010,A28F256,A28F512,F29C51004等。是Altium Designer的SCH封装库,.SchLib格式的,非常实用

    micron 镁光 serial flash m25p40 m25p128 原理图库 封装库 altium

    micron 镁光 serial flash m25p40 m25p128 原理图库 封装库 altium

    BGA封装库DDR2~LPDDR4_Nand Flash-PCB文件3D封装AD库

    BGA封装库DDR2~LPDDR4_Nand Flash-PCB文件3D封装Altium Designer库的型号类型如下,总有你需要的一款: 225G、289-FBGA-1414、352C1、BGA132、BGA152、DDR2_WBGA84、DDR3_FBGA78、DDR3_FBGA 96、DDR4_FBGA 96、FBGA...

    多种flash效果(纯js写)封装包

    NULL 博文链接:https://walleyekneel.iteye.com/blog/1023133

    跳线封装(三维PCB封装库)AD用PCB封装库

    标题中的“跳线封装(三维PCB封装库)AD用PCB封装库”是指在电子设计自动化(EDA)软件Altium Designer(简称AD)中使用的专门针对跳线的三维PCB封装库。这个库包含了设计师精心制作的跳线组件模型,以供用户在PCB...

    常用封装vs最全封装

    "常用封装"和"最全封装"是与Protel PCB设计相关的两个关键概念,主要涉及元器件的封装库。 封装是电子元件在PCB上的物理表示,它包括元件的形状、引脚位置、引脚数量以及焊盘的大小和形状。"常用封装"是指在实际...

    XH2.54封装(三维PCB封装库)AD用PCB封装库

    在电子设计领域,PCB(Printed Circuit Board)封装库是至关重要的资源,它包含了电路板上各种电子元件的形状、尺寸以及焊盘位置等信息。"XH2.54封装”是一种常见的接插件封装,常用于连接器,如排针、排母等,它的...

    Micron Memory Serial NOR Flash 全系列原理图库+PCB封装库(AD集成库).zip

    Micron Memory Serial NOR Flash 全系列原理图库+PCB封装库(AD集成库).IntLib后缀文件,拆分后文件为PcbLib+SchLib格式,Altium Designer原理图库+PCB封装库,集成库型号列表如下: Library Component Count : 207...

    电感封装(三维PCB封装库)AD用PCB封装库

    在电子设计领域,电路板设计(PCB Design)是至关重要的环节,而元器件的封装则是PCB设计的基础。本文将详细讲解电感封装在三维PCB封装库中的应用,以及如何在Altium Designer(AD)中使用这些封装库。 首先,让...

    常用贴片电感PCB封装库(AD库,封装带3D视图)

    常用贴片电感PCB封装库(AD库,封装带3D视图) 常用贴片电感PCB封装库(AD库,封装带3D视图) 常用贴片电感PCB封装库(AD库,封装带3D视图) 常用贴片电感PCB封装库(AD库,封装带3D视图) 常用贴片电感PCB封装库...

    SSOP_48封装

    4. 封装的制造和检验标准:虽然给出了封装的具体尺寸数据,但是实际的封装可能还会有模具闪光(mold flash)或突出部分(protrusion),但其超出的部分不得大于0.006英寸(大约0.15毫米)。在封装的制造过程中,需要...

    QFN贴片芯片封装(三维PCB封装库)AD用PCB封装库

    QFN(Quad Flat No-Lead)贴片芯片封装是一种广泛应用于现代电子设备的无引脚或短引脚封装技术。这种封装方式具有体积小、重量轻、散热性能好等特点,适用于高密度、高性能的集成电路。在电路板设计中,正确选择和...

    cadence allegro封装库封装大全

    本资源“cadence allegro封装库封装大全”提供了全面的封装库信息,帮助用户在设计过程中节省时间和提高效率。 封装库是CAD工具中至关重要的元素,它包含了许多不同种类的元器件模型,如电阻、电容、晶体管、集成...

    20个天线pcb封装库2.4G天线封装WIFI 蓝牙 GPS GMS天线封装库ALTIUM AD库.zip

    本资源“20个天线pcb封装库2.4G天线封装WIFI 蓝牙 GPS GMS天线封装库ALTIUM AD库.zip”提供了一系列用于高频无线通信的天线元件封装,适用于ALTIUM Designer这款流行的电路设计软件。 首先,让我们深入了解2.4G天线...

    Altium Designer PCB封装库大全pcb封装库

    "Altium Designer PCB封装库大全pcb封装库"这个标题意味着我们将探讨的是Altium Designer中的一个重要组成部分——封装库。 封装库是PCB设计的基础,它包含了各种电子元件的外形尺寸、引脚位置和电气连接信息。在...

    系统封装首席执行官SC封装2.0+工具

    系统封装是IT行业中一个重要的技术领域,特别是在系统部署和维护方面。"系统封装首席执行官SC封装2.0+工具"是一种专为系统管理员和IT专业人员设计的高级工具,旨在简化系统安装和配置的过程,提高工作效率。在这个...

    各种晶振封装AD封装库晶振

    晶振封装是晶振在电路板上安装和使用的物理形式,对于设计者来说,理解不同封装类型及其应用至关重要。标题提到的“AD封装库晶振”是指适用于Altium Designer(AD)这款电子设计自动化软件的晶振模型库。 Altium ...

    IDC2.54封装(三维PCB封装库)AD用PCB封装库

    标题中的“IDC2.54封装”是指一种常见的电子接插件,即绝缘刺穿连接器(Insulated Discrete Connector, IDC)。这种接插件主要用于电路板之间的连接,其特征在于2.54毫米的间距,这是一种国际标准,允许在有限的空间...

    常用电子元器件Cadence Allegro PCB标准封装库器件Package封装库合集(Cadence库).zip

    《Cadence Allegro PCB设计中的元器件封装库详解》 在电子设计自动化(EDA)领域,Cadence Allegro是一款广泛使用的PCB设计软件,它为工程师提供了强大的电路板设计工具。其中,元器件封装库是设计过程中的核心部分...

Global site tag (gtag.js) - Google Analytics