开发接口的常见场景:
1、mock接口,模拟一些接口,在别的接口没有开发好的时候,你需要测试,可以先模拟一个假接口来测试。比如常见
2、若需要调用第三方接口时,比如支付接口。
3、查看数据,比如开放数据库的部分数据时,开发一个接口供他人使用。
1.定义一个接口:
@server.route('/index',methods=['get']) #在函数上面加@server.route()表示该index()函数为一个接口,若参数没写的话,默认是get请求。
def index(): #定义一个函数
2.第一个接口:
import flask,json
server = flask.Flask(__name__) #把当前这个python文件,当做一个服务,定义Server(启动服务)
@server.route('/index',methods=['get']) #接口装饰器,get请求
def index():
res = {'msg':'这是我开发的第一个接口','msg_code':0} #定义一个字典
return json.dumps(res,ensure_ascii=False) #将字典转化成json串,ensure_ascii=False将unicode转成十进制
server.run(port=7777,debug=True,host='0.0.0.0') #启动服务。debug=True,改了代码之后,不用重启它会自动帮你重启redis
# host=0.0.0.0表示别人访问的时候,用你的ip就可以访问了。
运行接口:
get请求,直接在浏览器访问http://127.0.0.1:7777/index,如图:
3.第二个接口:
传入两个参数,username,passwd来注册用户,使用post请求,如:
import flask,json # __name__,代表当前这个python文件 server = flask.Flask(__name__) #把咱们当前这个python文件,当做一个服务(启动服务) def my_db(sql): import pymysql coon = pymysql.connect( host='118.24.3.xx', user='jxzx', passwd='123456', port=3306, db='jxzx', charset='utf8') cur = coon.cursor() #建立游标 cur.execute(sql)#执行sql if sql.strip()[:6].upper()=='SELECT': res = cur.fetchall() else: coon.commit() res = 'ok' cur.close() coon.close() return res @server.route('/reg',methods=['post']) def reg(): username = flask.request.values.get('username')# pwd = flask.request.values.get('passwd') print('username..',username) if username and pwd: sql = 'select * from my_user where username="%s";'%username # res = my_db(sql) if my_db(sql): res = {'msg':'用户已存在','msg_code':2001} else: insert_sql = 'insert into my_user (username,passwd,is_admin) values ("%s","%s",0);'%(username,pwd) my_db(insert_sql) res = {'msg':'注册成功!','msg_code':0} else: res = {'msg':'必填字段未填,请查看接口文档!','msg_code':1001} # 1001必填字段未填 return json.dumps(res,ensure_ascii=False) server.run(port=7777,debug=True,host='0.0.0.0') #debug=True,改了代码之后,不用重启它会自动帮你重启
启动服务
使用postman调用接口reg(),如: