接口编写

首先安装第三方flask模块,pip install flask

练习编写注册接口

分析:

1.注册需要有注册函数,最多输错3次,用户名不存在数据库,密码两次输入一致等

2.注册成功密码要加密,需要md5加密方法

3.注册成功后,存到数据库中

import flask,json,hashlib,pymysql
#读取数据库,sql是select为查询功能,insert则插入功能
def my_db(sql,port=3306,charset='utf8'):
    ip, user, password, db = '118.24.3.40','jxz','123456','jxz'
    conn = pymysql.connect(host=ip,user=user,password=password,
                    db=db,port=port,charset=charset,autocommit=True)
    cur = conn.cursor()
    cur.execute(sql)
    sql = sql.strip()
    sql = sql[:6].lower()#取到执行语句的前6个字符,用来判断是select、show查询 还是其他增删改(insert,delete,update)
    if sql.startswith('select') or sql.startswith('show'):
        data = cur.fetchall()#将查询的结果保存在data里
    else:
        data = 'ok'
    cur.close()
    conn.close()
    return data
#加密,返回加密后的字符串
def my_md5(s):
    m = hashlib.md5(s.encode())
    return m.hexdigest()


server = flask.Flask(__name__)#把这个当前python文件当做一个服务
@server.route('/register',methods=['post'])#@server.route装饰器,下面不是普通的函数 是一个接口
def reg():

    username = flask.request.values.get('username')#入参为form-data形式
    passwd = flask.request.values.get('passwd')
    cpasswd = flask.request.values.get('cpasswd')
    # json_data = flask.request.json  # 获取入参是json类型的
    # username = json_data.get('username')
    # passwd = json_data.get('passwd')
    # cpasswd = json_data.get('cpasswd')
    if not(username and passwd and cpasswd):
        res =  {'code':'2003','msg':'缺少必填参数'}
    else:
        sql1 = "select * from lina_users where username = '%s';"%username
        res = my_db(sql1)
        if res:
            res = {'code':'2001','msg':'该用户已被注册'}
        else:
            if passwd == cpasswd:
                res = {'code':'1000','msg':'注册成功'}
                sql = "insert into lina_users (username,password) VALUES ('%s','%s')"%(username, my_md5(passwd))
                my_db(sql)
            else:
                res =  {'code':'2002','msg':'两次密码不一致'}
    return json.dumps(res,ensure_ascii=False)

#默认5000端口,127.0.0.1 IP、启动服务,host0.0.0.0  就可以使别人访问这个接口了 debug=TRUE就可以不用重启服务
server.run(host='0.0.0.0',port=8989,debug=True)

目录分层结构

服务器bin目录放启动文件

猜你喜欢

转载自www.cnblogs.com/chrislina/p/9339902.html
今日推荐