8-2 开发接口 (入参是json格式)

时间:2022-06-04 21:10:44

1、开发入参事json格式的接口

import json
import tools
import flask
from .check_session import check_session
server = flask.Flask(__name__)

@server.route('/api/add_stu',methods=['post'])
def add_stu():
    """
添加学生信息接口
    :return: 返回添加的学生信息
    """
    if flask.request.is_json:  # 首先需要判断入参是否是json格式的
        # 从外界获取到输入的值,必填参数
        session_id = flask.request.json.get('session_id')
        name= flask.request.json.get('name')
        phone = flask.request.json.get('phone')
        grade = flask.request.json.get('grade')
        # 从外界获取到输入的值,非必填,用户请求不传时设置默认值
        addr = flask.request.json.get('addr','北京')
        sex = flask.request.json.get('sex','')
        age = flask.request.json.get('age',18)
        gold = flask.request.json.get('gold',1000)
        # 判断session_id name phone grade是否为空
        if session_id and name and phone and grade:  # 都必填的操作
            # 定义两个变量来接收 判断session_id是否有效函数中返回的值
            login_tag , data = check_session(session_id)
            if login_tag:  # session_id 有效
                # 插入sql
                insert_sql="insert into `jxz`.`app_student` ( `name`, `sex`," \
                           " `age`, `addr`, `grade`, `phone`, `gold`)" \
                           " values ( '%s', '%s', '%s', '%s', '%s', '%s', '%s');"%(name,sex,age,addr,grade,phone,gold)
                tools.my_db(insert_sql)  # 调用tools下的my_db函数,执行sql
                res = {'code':0,'msg':'学生信息添加成功'}  # 接口返回的类型都是json类型的
            else:  # session_过期了,返回session_id
                res = data

        else:  # 必填参数没有填时给出提示信息:必填参数未填
            res = {'code':3,'msg':'必填参数未填,请查看接口文档!'}
    else:  # 判断入参不是json格式的,提示入参是json格式
        res = {'code':5,'msg':'入参是json类型的!'}
    return json.dumps(res, ensure_ascii=False)  # 将返回的结果转换成json