以下是一个接口开发实例:
功能见注释:
# coding = utf-8 import flask import json from API import db_conn server = flask.Flask(__name__) # 对flsk进行实例化 @server.route('/add_student', methods=['post']) # 接口地址路由及请求方式 def add_student(): params1 = flask.request.json # 入参是字典json时用它,下面的代码要判断传入的参数是否是json类型 params = flask.request.form # 请求值是表单的形式 application/x-www-form-urlencoded if params: # 判断请求的值是否是json或表单 name = params.get('name') sex = params.get('sex', '男') # 如果没有传。默认值是男 age = str(params.get('age')) # int类型 addr = params.get('addr') grade = params.get('grade') phone = str(params.get('phone')) # 最少11位,不能重复 gold = str(params.get('gold', 500)) # 金币可以是小数,如果没有传默认是500 if name and age and addr and grade and phone: # 必填参数校验 if sex not in['男', '女']: # 如果性别不是男或者女 res = {"error_code": 3003, "msg": "性别只能是男或者女"} elif not age.isdigit(): # 如果不是整数类型 res = {"error_code": 3004, "msg": "年龄输入错误"} elif len(phone)!=11 or not phone.isdigit(): res = {"error_code": 3005, "msg": "手机号输入错误"} elif not gold.isdigit() and not db_conn.check_float(gold): # 如果不是整数也不是小数 res = {"error_code": 3006, "msg": "金币输入错误"} else: sql="select* from app_student where phone='%s';"%phone # 查看数据库中是否有这个手机号,有的话说明重复 result = db_conn.my_db(sql) # 执行sql if result: res = {"error_code": 1000, "msg": "手机号已经存在"} else: sql = "INSERT INTO app_student(NAME,sex,age,addr,grade,phone,gold)VALUES('%s','%s',%s,'%s','%s',%s,'%s')" % ( name, sex, age, addr, grade, phone, gold) # sql增加操作 db_conn.my_db(sql) # 调用执行sql res = {"error_code": 200, "msg": "新增成功! "} else: res = {"error_code": 3007, "msg": "必填参数未填写"} else: res={"error_code": 3002, "msg": "入参必须是json类型"} return json.dumps(res, ensure_ascii=False) # 防止出现乱码 server.run(host='192.168.10.22',port=8885) # 启动服务