博主今天把API接口管理平台发布到github了,这次是更新一些功能
如支持本地数据库sqlite3、优化了数据结构
技术方面跟之前V1.0相同,只增加生产本地数据;但是为了支持层级的参数,修改了数据结构,下面是新的model.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from app import db 5 6 7 class User(db.Model): 8 user_id = db.Column(db.Integer, primary_key=True, autoincrement=True) 9 user_name = db.Column(db.String(64))10 password = db.Column(db.String(64))11 status = db.Column(db.Integer)12 level = db.Column(db.Integer)13 14 15 class Model(db.Model):16 model_id = db.Column(db.Integer, primary_key=True, autoincrement=True)17 model_name = db.Column(db.String(256))18 status = db.Column(db.Integer)19 # 项目分类ID、名称、状态20 21 22 class Interface(db.Model):23 interface_id = db.Column(db.Integer, primary_key=True, autoincrement=True)24 model_id = db.Column(db.Integer, db.ForeignKey("model.model_id"))25 interface_name = db.Column(db.String(64))26 interface_url = db.Column(db.String(1024))27 interface_method = db.Column(db.String(64))28 request_exam = db.Column(db.String(4096))29 response_exam = db.Column(db.String(4096))30 status = db.Column(db.Integer)31 # 接口信息32 33 34 class Parameter(db.Model):35 parameter_id = db.Column(db.Integer, primary_key=True, autoincrement=True)36 interface_id = db.Column(db.Integer, db.ForeignKey("interface.interface_id"))37 parameter_type = db.Column(db.String(64))38 parameter_group_id = db.Column(db.Integer)39 parameter_name = db.Column(db.String(64))40 necessary = db.Column(db.String(64))41 type = db.Column(db.String(64))42 default = db.Column(db.String(64))43 remark = db.Column(db.String(64))44 level = db.Column(db.String(64))45 # 参数信息
然后是根据定义好的结构重新定义表单字段 forms.py
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 from flask_wtf import Form 5 from wtforms import StringField, TextField, PasswordField, FormField, SubmitField, FieldList, IntegerField 6 from wtforms.validators import Required, DataRequired 7 8 9 class LoginForm(Form):10 username = StringField("登陆名", validators=[Required()])11 password = PasswordField("密码", validators=[Required()])12 13 14 class ModelForm(Form):15 model_name = StringField("中文名称", validators=[Required()])16 17 18 class InterfaceForm(Form):19 interface_name = StringField("接口名称", validators=[Required()])20 interface_url = StringField("接口地址", validators=[Required()])21 interface_method = StringField("接口方法", validators=[Required()])22 request_exam = TextField("请求示例", validators=[Required()])23 response_exam = TextField("返回示例", validators=[Required()])24 25 26 class ParameterRequestForm(Form):27 parameter_group_id = StringField("从属", validators=[Required()])28 parameter_name = StringField("参数名称", validators=[Required()])29 necessary = StringField("是否必须", validators=[Required()])30 type = StringField("类型", validators=[Required()])31 default = StringField("默认值", validators=[Required()])32 remark = StringField("备注", validators=[Required()])33 level = StringField("层级", validators=[Required()])34 35 36 class ParameterResponseForm(Form):37 parameter_group_id = StringField("从属", validators=[Required()])38 parameter_name = StringField("参数名称", validators=[Required()])39 necessary = StringField("是否必须", validators=[Required()])40 type = StringField("类型", validators=[Required()])41 default = StringField("示例", validators=[Required()])42 remark = StringField("描述", validators=[Required()])43 level = StringField("层级", validators=[Required()])44 45 46 class SubmitForm(Form):47 submit = SubmitField("保存")
关系总结就是 项目分类下有接口、接口中有参数、参数又分为 请求参数;返回参数
还增加了后台管理:
github地址:
这边博主没有把用户管理完成、还有使用项目过程中有用户密码的话就用:admin/123456