前言
如果大家看我之前整个 【测试平台搭建】 的文章有很多疑问,比如说里面引入的一些包你很没用过又不知道怎么去运用的话,可以看下这篇博客,我把一些知识点,单独给拧出来总结了一下
接下来我会一一讲述各个知识点
后端:
--> 1、flask基本使用
--> 2、Flask Restx基本使用
--> 3、Flask-Restx集成Swagger
--> 4、Orm简要介绍
--> 5、flask_SQLAlchemy基本使用前端:
--> 1、api优化
- Mikasa测试平台搭建专栏:https://blog.csdn.net/makasa/category_11904938.html?spm=1001.2014.3001.5482
一、flask基本使用
- 之前其实已经简单介绍过了,不解的看注释部分
https://blog.csdn.net/Makasa/article/details/125690307
1、下载flask
pip install flask
2、flask_demo.py
"""这里简单介绍flask的基本使用前提: pip install flask
"""
from flask import Flask
app = Flask(__name__)
@app.route("/demo")
def hello_world():return "HelloWorld"
@app.route("/getname/")
def getname(username):return username
@app.route("/post/")
def get(username):return username
@app.route("/demo2/")
def print():return "地址栏尾部有/"
@app.route("/testcase", methods=["get"])
def get_case():return {"code": 0, "msg": "get success"}if __name__ == '__main__':app.run(debug=True, host="0.0.0.0")
二、Flask-Restx基本使用
1、安装flask-restx
pip install flask-restx
2、flask_restx_demo1.py
"""这里介绍Flask Restx 接口配置的基本使用前提:pip install flask-restx他是一个支持Restful的flask插件,用于规范化接口的编写,并且支持swagger文档
"""
from flask import Flask
from flask_restx import Api, Resource
app = Flask(__name__)
api = Api(app)
@api.route('/hello')
class HelloWorld(Resource):def get(self):return {'hello': 'world'}
if __name__ == '__main__':app.run(debug=True)
3、flask_restx_demo2.py
"""这里介绍Flask Restx 接口配置的基本使用2前提:pip install flask-restx使用restful风格规范接口
"""
from flask import Flaskfrom flask_restx import Api, Resource
app = Flask(__name__)
api = Api(app)
@api.route("/user")
class User(Resource):def get(self):return {'code': 0, "msg": "get success"}def post(self):return {'code': 0, "msg": "post success"}def put(self):return {'code': 0, "msg": "put success"}def delete(self):return {'code': 0, "msg": "delete success"}if __name__ == '__main__':app.run(debug=True)
三、Flask-Restx集成Swagger
1、flask_restx_namespace_demo.py
"""这里介绍Flask-Restx namespace的使用
"""
from flask import Flask
from flask_restx import Api, Namespace, Resourceapp = Flask(__name__)
api = Api(app)
hello_ns = Namespace("demo", description="demo管理")
case_ns = Namespace("case", description="用例管理")
@case_ns.route("")
class TestCase(Resource):def get(self):return {'code': 0, 'msg': "get success"}def post(self):return {'code': 0, 'msg': "post success"}
api.add_namespace(case_ns, '/case')if __name__ == '__main__':app.run(debug=True)
2、flask_restx_swagger_demo.py
"""这里介绍flask_restx,集成swagger的基本使用swagger可以理解为API接口文档,便于前后端分离项目中的使用前端可以直接访问文档进行接口调用,类似于postman
"""from flask import Flask
from flask_restx import Api, Namespace, Resourceapp = Flask(__name__)
api = Api(app)
case_ns = Namespace("case", description="用例管理")
@case_ns.route("")
class TestCase(Resource):get_paresr = api.parser()get_paresr.add_argument("id", type=int, location="args")@case_ns.expect(get_paresr)def get(self):return {'code': 0, 'msg': "get success"}
api.add_namespace(case_ns, '/case')if __name__ == '__main__':app.run(debug=True)
四 、Orm简要介绍
1、ORM的含义
ORM(Object Relational apping):对象关系映射,他的作用是在关系向数据库和对象之间做一个映射,这也在具体操作数据库的时候,就不需要再去和复杂的SQL语句打交道,只需要像平时操作对象一样操作就可以了
- 我们【测试平台】的项目中就是引用ORM思想,将对象和表结构进行映射,创建一个实体然后直接操作实体的增删改查,不需要单独自己去写sql语句,所以看起来简单很多
2、ORM优缺点
优点:
- 隐藏 了数据访问细节
- ORM使我们构造固化数据结构变得非常简单缺点:
- 性能下降,添加了关联操作
- 无法解决特别复杂的数据库操作
五、Flask-SQLAlchemy插件配置
- 上面简单介绍了一下ORM的含义,SQLAlchemy是python中最有名的ORM框架,而我们【测试平台】后端框架用的是Flask,那我们可以借助flask-sqlalchemy去实现对象的映射
1、安装flask-sqlalchemy
pip install flask-sqlalchemy
2、Flask-SQLAlchemy基本使用
"""这里介绍flask-sqlalchemy的基本使用
"""
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
username = "root"
password = "yy1998123"
server = "127.0.0.1"
database = "test_platform"app.config['SQLALCHEMY_DATABASE_URI'] = \f"mysql+pymysql://{username}:{password}@{server}/{database}?charset=utf8"
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db = SQLAlchemy(app)
class User(db.Model):__tablename__ = "User"id = db.Column(db.Integer, primary_key=True)username = db.Column(db.String(20), unique=True, nullable=False)create_time = db.Column(db.DateTime)json = db.Column(db.JSON)def __repr__(self):return self.usernameif __name__ == '__main__':db.create_all()db.drop_all()
3、CURD基本操作
3.1、添加数据
3.2、查询数据
3.3、修改数据
3.4、删除数据
六、前端API架构优化
- 为什么前端要优化api架构?主要是为了代码更加规范
- 下面我就以我们的【测试平台前端】为例,简单讲解一下
1、http.js
2、封装各模块接口(testcase/plan/build.js)
3、整合api.js
4、挂载api