基于Flask的Web应用程序插件式结构开发
事实上,很多应用程序基于插件式结构开发,可以很方便了扩展软件的功能,并且这些功能完全可以依托于第三方开发者,只要提供好接口和完备文档,比如wordpress、谷歌火狐浏览器等。
Python这样的动态语言天生就支持插件式编程。与C++相比,Python已经定义好模块的接口,想要载入一个插件,一个__import__()就能很轻松地搞定。不需要特定的底层知识。而且与C++等静态语言相比,Python的插件式结构更显灵活。因为插件载入后,可以利用Python语言的动态性,充分地修改核心的逻辑。
——摘录于“如何设计插件式结构的程序,兼谈Python语言的动态性”
个人在开发个人博客站中,由于为了更“高大上的效果”,参考了一些文章和wordpress插件代码改造成了简单的插件式,把一些内置的“功能点”改造成为了插件包。
后期把相关功能独立成一个程序,托管到GitHub,经过重构,改写成Flask扩展,名:Flask-PluginKit,欢迎感兴趣的开发者fork代码提交pull request
----------------------------------------------完美分割线-----------------------------------------
Flask-PluginKit
基于Flask的插件式开发工具(Web program plugin development kit based on flask).
GitHub:https://github.com/staugur/Flask-PluginKit
PYPI:https://pypi.org/project/Flask-PluginKit/
文档:https://flask-pluginkit.readthedocs.io/
安装(Installation)
$ pip install flask-pluginkit
普通模式(Usage)
from flask_pluginkit import PluginManager
plugin = PluginManager(app)
工厂模式(The factory pattern)
from flask_pluginkit import PluginManager
plugin = PluginManager()
plugin.init_app(app)
基于Flask的Web应用程序插件式结构开发的更多相关文章
- 在Autodesk应用程序商店发布基于浏览器的Web应用程序
你一定已经听说过Autodesk应用程序商店了,通过Autodesk应用程序商店,你可以免费下载或购买来自全球的优秀开发者发布的应用程序,来帮助你更快更方便的完成你的工作.而且作为开发者,您也可以在A ...
- 转换基于Maven的Web应用程序支持Eclipse IDE
在上一节教程中,使用Maven创建了一个Web应用程序.这里有一个指南,告诉你如何转换Web应用程序到Eclipse IDE支持的形式. 注意,通过WTP工具Eclipse IDE支持Web应用程序, ...
- maven 学习---转换基于Maven的Web应用程序支持Eclipse IDE
在上一节教程中,使用Maven创建了一个Web应用程序.这里有一个指南,告诉你如何转换Web应用程序到Eclipse IDE支持的形式. 注意,通过WTP工具Eclipse IDE支持Web应用程序, ...
- 树莓派搭建基于flask的web服务器-通过移动端控制LED
1.概述 在局域网内,基于flask搭建web服务,从而可以使用移动客户端访问该web服务.由于是flask新手,所以本次实现的web服务功能较为简单,即控制LED灯的开/关及闪烁. 2.准备工作 2 ...
- 基于EasyUI的Web应用程序及过去一年的总结
前言 在这家公司服务了一年时间,一个多月之前已经提交了离职申请,好在领导都已经批准了,过几天就办理手续了,在此感谢领导的栽培与挽留,感谢各位同事在工作中的给我的帮助,感谢师傅(在我心中当他是我师傅,跟 ...
- AppDomain实现【插件式】开发
前言: 近期项目中需要实现"热插拔"式的插件程序,例如:定义一个插件接口:由不同开发人员实现具体的插件功能类库:并最终在应用中调用具体插件功能. 此时需要考虑:插件执行的安全性(隔 ...
- 理解Web应用程序的代码结构和运行原理(3)
1.理解Web应用程序的运行原理和机制 Web应用程序是基于浏览器/服务器模式(也称B/S架构)的应用程序,它开发完成后,需要部署到Web服务器上才能正常运行,与用户交互的客户端是网页浏览器. 浏览器 ...
- 一步步构建.NET Core Web应用程序---基本项目结构
前言 随着.NET Core日益成熟, 我作为C#&.NET体系中的一份子也加入了.NET Core 这一体系中,随着不断学习, 接触到的各种框架日益庞杂,接下来我会由一个新手的角度把整个基于 ...
- 基于Flask 实现Web微信登陆
网页版微信登陆网址 https://login.wx.qq.com/ 获取微信登陆的二维码 在浏览器中访问登陆接口 https://login.wx.qq.com/ 我们查找二维码的图片可以看到 其中 ...
随机推荐
- flask shell命令
在flask项目目录下,使用pipenv shell激活flask虚拟环境后,调用flask shell能够使用虚拟环境的python解释器进入交互式环境,并且工作目录还保留在flask项目目录. f ...
- mysql语句,插入id随机生成
insert into 表名 VALUES(uuid(),…) 还有一个uuid_short(),只有数字 insert into 表名 VALUES(uuid_short(),…)
- SSMP一次请求数据处理过程分析
控制器代码 @RequestMapping("/changeUserPwd") public TranMessage changeUserPwd(String oriPwd, St ...
- Python3.0科学计算学习之绘图(一)
基本绘图: (1) plot是标准的绘图库,调用函数plot(x,y)就可以创建一个带有绘图的图形窗口(其中y是x的函数).输入的参数为具有相同长度的数组(或列表):或者plot(y)是plot(r ...
- 又见thrift异常之TApplicationException: Internal error processing..
客户端调用获取商户提现产品手续费的接口,出现异常org.apache.thrift.TApplicationException: Internal error processing getMercha ...
- 蓝桥杯近3年决赛题之二(16年b组)
做的时候只做对了第一题. 1. 一步之遥 从昏迷中醒来,小明发现自己被关在X星球的废矿车里.矿车停在平直的废弃的轨道上.他的面前是两个按钮,分别写着“F”和“B”. 小明突然记起来,这两个按钮可以控制 ...
- jupyter notebook + frp 实现内容穿透
服务器上找到frps.ini 配置如下 [common] bind_port = 7000 vhost_http_port = 8890 要穿透的笔记本的frpc.ini配置 [common] ser ...
- CentOS7中OpenVPN的配置
最近需要在openstack中集成openvpn功能,故熟悉了一下openvpn的搭建流程,记录下来,供参考 版本:openvpn-2.3.4.tar.gz 下载地址:http://pan.baidu ...
- SRD_PreloaderCore
预加载 Preloader CoreVersion 1.10SumRndmDde This plugin requires the Game Upgrade plugin:http://sumrndm ...
- 如何在Jenkins上配置一个可以从其它Job取回Artifact的Job
今天因为工作上的需求,需要在Jenskin上配置一个job, 它应该可以从其它所选择的Job中取回Artifact. 首先,在"构建"步骤中添加 "Copy Artifa ...