Flask框架学习笔记(API接口管理平台 V2.0)

博主今天把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地址:https://github.com/cllovewxq/pythonapi

这边博主没有把用户管理完成、还有使用项目过程中有用户密码的话就用:admin/123456

原文地址:https://www.cnblogs.com/cllovewxq/p/6104380.html