Flask框架学习笔记(API接口管理平台 V1.0)
今天博主终于完成了API接口管理平台,最后差的就是数据库的维护,
博主这里介绍下平台的设计原理,首先基于python,利用flask的web框架+bootstrap前端框架完成,先阶段完成了前台展示页
二期要加入登录退出,后台管理
下面是文档结构图
涉及的python第三方模块:flask、flask-bootstrap、sqlalchemy
整体页面的布局:页头的导航,右侧的API分类,页面信息
页面信息内容包括:接口说明,请求参数,返回参数,请求示例,返回示例
下面是定义数据库对象的model.py 文件
#!/usr/bin/env python
# -*- coding: utf-8 -*- from sqlalchemy import Column, create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import json
import sys
# 导入数据库所有表字段类型
from sqlalchemy.dialects.mysql import \
BIGINT, BINARY, BIT, BLOB, BOOLEAN, CHAR, DATE, \
DATETIME, DECIMAL, DECIMAL, DOUBLE, ENUM, FLOAT, INTEGER, \
LONGBLOB, LONGTEXT, MEDIUMBLOB, MEDIUMINT, MEDIUMTEXT, NCHAR, \
NUMERIC, NVARCHAR, REAL, SET, SMALLINT, TEXT, TIME, TIMESTAMP, \
TINYBLOB, TINYINT, TINYTEXT, VARBINARY, VARCHAR, YEAR # 创建对象的基类:
Base = declarative_base() reload(sys)
sys.setdefaultencoding("utf-8") # 定义api表对象
class Api(Base):
# 表的名字:
__tablename__ = 'api' # 表的结构:
id = Column(INTEGER(10), primary_key=True)
name = Column(VARCHAR(50))
url = Column(TEXT)
method = Column(VARCHAR(10))
service = Column(VARCHAR(50))
access_token = Column(VARCHAR(255))
reqParam = Column(TEXT)
response = Column(TEXT)
requestExam = Column(TEXT)
responseExam = Column(TEXT) # 定义model表对象
class Model(Base):
# 表的名字:
__tablename__ = 'model' # 表的结构:
id = Column(VARCHAR(25), primary_key=True)
name = Column(VARCHAR(50))
ch_name = Column(VARCHAR(50))
from_id = Column(VARCHAR(25))
下面是试图views.py
#!/usr/bin/env python
# -*- coding: utf-8 -*- from app import app
from flask import render_template, flash, redirect, session, url_for, request, g
from models import Api, Model
from config import connect_db
import json
import sys reload(sys)
sys.setdefaultencoding("utf-8") @app.route("/")
@app.route("/index")
def index():
return render_template("index.html") @app.route("/<id>", methods=["GET", "POST"])
def model(id):
all_name = []
db = connect_db()
conn = db()
table_model = conn.query(Model).filter(Model.name == id).one()
model_name = table_model.name
model_ch_name = table_model.ch_name
model_all = conn.query(Model).filter(Model.from_id == table_model.id).all()
for i in range(len(model_all)):
name = {"ch_name": model_all[i].ch_name, "name": model_all[i].name}
all_name.append(name)
conn.close()
return render_template("model.html",
model_name=model_name,
model_ch_name=model_ch_name,
all_name=all_name) @app.route("/desk/<id>")
def form(id):
all_names = []
db = connect_db()
conn = db()
table_model = conn.query(Model).filter(Model.name == id).one()
model_all = conn.query(Model).filter(Model.from_id == table_model.from_id).all()
for i in range(len(model_all)):
name = {"ch_name": model_all[i].ch_name, "name": model_all[i].name}
all_names.append(name)
model_id = conn.query(Model).filter(Model.id == table_model.from_id).one()
model_ch_name = model_id.ch_name
model_name = model_id.name
table_api = conn.query(Api).filter(Api.id == table_model.id).one()
name = table_api.name
url = table_api.url
method = table_api.method
service = json.loads(table_api.service)
access_token = json.loads(table_api.access_token)
reqparam = json.loads(table_api.reqParam)
response = json.loads(table_api.response)
request_exam = table_api.requestExam
response_exam = table_api.responseExam
conn.close()
return render_template("form.html",
url=url,
method=method,
name=name,
all_names=all_names,
model_name=model_name,
model_ch_name=model_ch_name,
service=service,
access_token=access_token,
reqparam=reqparam,
response=response,
request_exam=request_exam,
response_exam=response_exam)
博主根据路由对首页,模块,接口 定义了视图
最后给大家看下效果
Flask框架学习笔记(API接口管理平台 V1.0)的更多相关文章
- Flask框架学习笔记(API接口管理平台 V2.0)
博主今天把API接口管理平台发布到github了,这次是更新一些功能 如支持本地数据库sqlite3.优化了数据结构 技术方面跟之前V1.0相同,只增加生产本地数据:但是为了支持层级的参数,修改了数据 ...
- 分享一个开源免费、目前最好的API接口管理平台----eoLinker
一.概况 eoLinker 是目前业内领先.国内最大的在线 API 接口管理平台,提供自动生成 API 文档.API 自动化测试.Mock 测试.团队协作等功能,旨在解决由于前后端分离导致的开发效率低 ...
- Web开发Flask框架学习笔记
Python 是一种跨平台的[计算机程序设计语言],是一种面向对象的动态类型语言,Python是纯粹的自由软件,源代码和解释器CPython遵循 GPL(GNU General Public Lice ...
- Activiti工作流框架学习笔记(二)之springboot2.0整合工作流Activiti6.0
以前在工作当中做过不少与工作流Activiti有关的工作,当时都是spring集成activiti5.22的项目,现在回过头去看,其实版本已经稍微老了,因此,基于先前的工作经验,决定用较新版本的技术来 ...
- 这个接口管理平台 eoLinker 开源版部署指南你一定不想错过
本文主要内容是讲解如何在本地部署eoLinker开源版. 环境要求 1.PHP 5.5+ / PHP7+(推荐) 2.Mysql 5.5+ / Mariadb 5.5+ 3.Nginx(推荐) / A ...
- 这份接口管理平台 eoLinker 开源版的部署指南教程你一定不想错过
本文主要内容是讲解如何在本地部署eoLinker开源版. 环境要求 1.PHP 5.5+ / PHP7+(推荐) 2.Mysql 5.5+ / Mariadb 5.5+ 3.Nginx(推荐) / A ...
- JavaSE中线程与并行API框架学习笔记1——线程是什么?
前言:虽然工作了三年,但是几乎没有使用到多线程之类的内容.这其实是工作与学习的矛盾.我们在公司上班,很多时候都只是在处理业务代码,很少接触底层技术. 可是你不可能一辈子都写业务代码,而且跳槽之后新单位 ...
- JavaSE中线程与并行API框架学习笔记——线程为什么会不安全?
前言:休整一个多月之后,终于开始投简历了.这段时间休息了一阵子,又病了几天,真正用来复习准备的时间其实并不多.说实话,心里不是非常有底气. 这可能是学生时代遗留的思维惯性--总想着做好万全准备才去做事 ...
- [接口管理平台] eoLinker AMS 专业版 V3.5 :加入数据结构管理、通用函数管理、API 快速测试等近 30 项更新
eoLinker AMS是集API文档管理.API自动化测试.开发协作三位一体的综合API开发管理平台,是中国最大的在线API管理平台.目前eoLinker AMS已经为来自全球的超过两万家企业托管超 ...
随机推荐
- 如何解决WebkitBrowser使用出错“Failed to initialize activation context”
本文转载自:http://www.cnblogs.com/supjia/p/4695671.html 本篇文章主要介绍了"如何解决WebkitBrowser使用出错“Failed to in ...
- git设置代理
git config --global https.proxy http://127.0.0.1:1080 git config --global https.proxy https://127.0. ...
- worker_pool的例子
鉴于poolboy的坑,pooler不支持r18,又有在知乎上看到大神推荐worker_pool这个进程池框架(工作者进程在创建时崩溃,worker_pool不受影响),所以研究了下,贴个小例子 my ...
- 微软为Visual Studio开发助手拓展C++支持
近日,微软宣布了一项 Visual Studio“开发助手”(Developer Assistant)插件的重大更新,其现已支持“基于 C++ 的情境感知 web 解决方案”.开发助手能够嵌入 Vis ...
- Linux下查看和添加环境变量
转自:http://blog.sina.com.cn/s/blog_688077cf01013qrk.html $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您 ...
- 【WEB】原理 之 线程池
问题描述:我们获取连接超过连接池最大值时产生如上异常.通常连接池最大值为100.当我们获取连接超过最大值时,WEB等待连接池返回连接而超时,这样将抛出如上异常解决办法:首先要做的是在我们使用连接后立即 ...
- 黄聪:PHP5.6+7代码性能加速-开启Zend OPcache-优化CPU
说明 PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的).对于PHP 5.5以下版本的,需要使用APC加速,这里不说明,可以自行上网搜索PHP APC加速的方法 ...
- 手把手教你玩转Git分布式版本控制系统!
目录 Git诞生历史 Git环境准备 Git安装部署 Git常用命令 Git基本操作 Git管理分支结构 Git管理标签 GitLab安装部署 GitHub托管服务 Git客户端工具 1 Git诞生历 ...
- POJ2226 Muddy Fields 二分匹配 最小顶点覆盖 好题
在一个n*m的草地上,.代表草地,*代表水,现在要用宽度为1,长度不限的木板盖住水, 木板可以重叠,但是所有的草地都不能被木板覆盖. 问至少需要的木板数. 这类题的建图方法: 把矩阵作为一个二分图,以 ...
- web提前做好测试
1.压力测试,找到极限点和瓶颈,最小化扩容2.消息队列应对高并发的写操作 根据数据大小分成不同队列,保证效率 堵塞队列,压队列机极限处理能力3.主要业务和次要业务分开,当出现异常时保障主要业务,保证系 ...