使用python中的flsk开发接口

以下是一个接口开发实例:

  功能见注释:

# 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)   #  启动服务

 

posted @ 2019-09-12 17:38  CC_阿尔法  阅读(446)  评论(0编辑  收藏  举报