常用业务接口界面化 in python flask

简介: 背景: 对于业务测试来说,有一些基础业务接口是需要经常调用的,如根据userId查询某人的信息,修改某人的xx属性,一般的接口都有验签(或者说token)机制,使用postman等工具的话,也是需要去自定义解决的,因此决定写个页面更简易化   思路: 为了快速实现功能,决定采用python的...

背景:

对于业务测试来说,有一些基础业务接口是需要经常调用的,如根据userId查询某人的信息,修改某人的xx属性,一般的接口都有验签(或者说token)机制,使用postman等工具的话,也是需要去自定义解决的,因此决定写个页面更简易化

 

思路:

为了快速实现功能,决定采用python的flask框架,使用了flask-wtf(form表单),flask-bootstrap(美化界面),ajax

 

app.py,启动程序

from flask import Flask, render_template,request
from flask_bootstrap import Bootstrap
from works import *
from myForm import ReqForm


app = Flask(__name__)
app.config.from_object('config')
Bootstrap(app)

@app.route("/", methods=['GET', 'POST'])
def index():
    form = ReqForm()
    
    if  request.method == "POST":
        result = getReq(request.form.get( "url", "null"))
        return result
    
    return render_template("index.html", form=form)

if __name__ == "__main__":
    app.run(host='0.0.0.0',debug=True)

 

form.py 表单对象

from flask_wtf import FlaskForm
from wtforms import StringField, SubmitField, TextAreaField, SelectField
from wtforms.validators import DataRequired


class ReqForm(FlaskForm):
    method = SelectField(u'Method', choices=[('get', 'GET'), ('post', 'POST'), ('delete', 'DELETE')])
    url = StringField('Please enter the URL: ', validators=[DataRequired()])
    reqBody = TextAreaField("Request Body: ",render_kw={'class':'text-body','rows':15})
    submit = SubmitField("Send")

 

index.html,页面展示层,用来渲染页面的

{% block head %}
<title>test</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link href="{{ url_for('static', filename='css/bootstrap.min.css') }}" rel="stylesheet">
<link rel="shortcut icon" href="{{ url_for('static', filename='favicon.ico') }}" type="image/x-icon">
{% endblock %}

{% import "bootstrap/wtf.html" as wtf %} 

{% block page_content %}
<div class="container">
    <div class="row clearfix">
        <div class="col-md-6 column">
            <form class="form" method="post">
                {{form.hidden_tag()}}
                {{wtf.form_field(form.method)}} 
                {{wtf.form_field(form.url)}}

                {{wtf.form_field(form.reqBody)}}
                {{wtf.form_field(form.submit)}}

        </form>
        </div>
        <div class="col-md-6 column">
            <h3>Result:</h3>
            <textarea id="textarea" class="form-control text-body" rows="21">{{result}}</textarea>
        </div>
    </div>
</div>
{% endblock %}

{% block scripts %}
<script src="{{ url_for('static', filename='js/jquery-3.2.1.min.js') }}"></script>
<script type=text/javascript>  
var $SCRIPT_ROOT = {{request.script_root|tojson|safe}};  
</script> 
<script type="text/javascript">

$(document).ready(function(){
    $("#submit").click(function(){
        $.post("/",
        {
            url: $( "#url" ).val(),
        },
        function(data,status){
            $( "#textarea" ).text(data);  
        }           
        );
        return false
      });
    });
</script>
{% endblock %}

 

work.py,实际接口的处理

import requests
import json

def getReq(url):
    r = requests.get(url)
    return json.dumps(json.loads(r.text), indent=4, sort_keys=False, ensure_ascii=False)

 

大概流程:

app.py启动后,通过实例化一个form表单,然后通过render_template指向到index.html,页面展示OK,页面上的submit绑定了js事件,将页面上的元素组装成post请求指向后台的地址,后台通过request获取到前端页面的值后,通过work.py的业务处理后return值返回前端,再展示会前端,这块使用了ajax

 

最终页面如下:

 

可以根据业务处理成如下:

 

虽千万人,吾往矣!
目录
相关文章
|
22天前
|
API 数据库 数据安全/隐私保护
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】Django REST framework (DRF) 是用于构建Web API的强力工具,尤其适合Django应用。本文深入讨论DRF面试常见问题,包括视图、序列化、路由、权限控制、分页过滤排序及错误处理。同时,强调了易错点如序列化器验证、权限认证配置、API版本管理、性能优化和响应格式统一,并提供实战代码示例。了解这些知识点有助于在Python面试中展现优秀的Web服务开发能力。
28 1
|
1月前
|
SQL API Python
Python DB API下规范下cursor对象常用接口
Python DB API下规范下cursor对象常用接口。
21 4
|
6天前
|
监控 PHP Python
1688快速获取整店铺列表 采集接口php Python
在电子商务的浪潮中,1688平台作为中国领先的批发交易平台,为广大商家提供了一个展示和销售商品的广阔舞台;然而,要在众多店铺中脱颖而出,快速获取商品列表并进行有效营销是关键。
|
22天前
|
SQL 中间件 API
Flask框架在Python面试中的应用与实战
【4月更文挑战第18天】**Flask是Python的轻量级Web框架,以其简洁API和强大扩展性受欢迎。本文深入探讨了面试中关于Flask的常见问题,包括路由、Jinja2模板、数据库操作、中间件和错误处理。同时,提到了易错点,如路由冲突、模板安全、SQL注入,以及请求上下文管理。通过实例代码展示了如何创建和管理数据库、使用表单以及处理请求。掌握这些知识将有助于在面试中展现Flask技能。**
18 1
Flask框架在Python面试中的应用与实战
|
23天前
|
存储 JSON 数据安全/隐私保护
Flask Python:如何获取不同请求方式的参数
Flask Python:如何获取不同请求方式的参数
|
23天前
|
数据安全/隐私保护 Python
Python Flask-Mail实现邮件发送
Python Flask-Mail实现邮件发送
|
25天前
|
监控 数据可视化 NoSQL
Python基于Flask的高校舆情分析,舆情监控可视化系统
Python基于Flask的高校舆情分析,舆情监控可视化系统
|
25天前
|
数据安全/隐私保护 Python
【Python】Python Flask token身份认证(附完整代码)
【Python】Python Flask token身份认证(附完整代码)
|
26天前
|
监控 NoSQL 测试技术
python使用Flask,Redis和Celery的异步任务
python使用Flask,Redis和Celery的异步任务
|
28天前
|
开发框架 安全 搜索推荐
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】
如何使用Python Flask发布web页面至公网并实现远程访问【内网穿透】