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已经为来自全球的超过两万家企业托管超 ...
随机推荐
- UI-动画
// ------------------UIImageView的动画------------------ // ------------------UIView的动画---------------- ...
- 【KVM安装】在Centos6.8中安装KVM
阅读目录 前题条件 章节1:安装Centos6.8-进行硬件检测 章节2:配置网络-设置桥接方式 章节3:安装KVM 章节4:OVA转qcow2 章节5:使用KVM创建虚拟机 章节6:参考链接 前题条 ...
- 黄聪:Discuz!的SEO优化策略二:如何去掉页脚多余的信息
论坛搭建好,首先是把多余的东西都砍掉. 页脚的信息在我看来,都是很多余的信息,如下图: 要怎么消灭掉它们呢? 1.进入 全局 -- 站点信息 2.站点名称改为你的论坛名称,它会出现在内页的标题最末位. ...
- 《黄聪:手机移动站SEO优化教程》2、PC端和手机移动端SEO优化区别
视频地址:http://v.youku.com/v_show/id_XNzE2ODcxNjM2.html
- [技巧]实际项目中background-image应写在页面上
摘自:http://www.zhangxinxu.com 因为实际项目中(数据对接时),这肯定是个动态的URL地址,css文件似乎不支持动态URL 地址. <img src="../i ...
- 工作中Linux常用命令
rpm -qa|grep -i mysql rpm -ev mysql-server-5.1.73-5.el6_6.x86_64 如果报: error: Failed dependencies: li ...
- ERP_Oracle Erp 11i 和 R12的区别概述(概念)
2014-06-26 Created By BaoXinjian
- OAF_架构MVC系列3 - View的概述(概念)
2014-06-18 Created By BaoXinjian
- cf 605B B. Lazy Student 构造 好题
题意: 一个n个节点的图,有m条边,已知这个图的一个mst 现在如果我们知道这个图的m条边,和知道mst的n-1条边是哪些,问能不能构造出一个满足条件的图 思路:排序+构造 数组deg[i]表示节点i ...
- 使用phpstuby时,Apache或mysql无法启动,端口被占用
使用phpstuby时,Apache或mysql无法启动,端口被占用,怎么办? 原因: 其它程序占用了80或3306端口. 如果占用了80端口则Apache无法启动: 如果占用了3306端口则mysq ...