首页 > 编程 > Python > 正文

使用python实现接口的方法

2020-02-16 01:48:40
字体:
来源:转载
供稿:网友

接口基础知识:

简单说下接口测试,现在常用的2种接口就是http api和rpc协议的接口,今天主要说:http api接口是走http协议通过路径来区分调用的方法,请求报文格式都是key-value形式,返回报文一般是json串;

接口协议:http、webservice、rpc等。

请求方式:get、post方式

请求参数格式:

  a. get请求都是通过url?param=xxx¶m1=xxx

  b. post请求的请求参数常用类型有:application/json、application/x-www-form-urlencoded、multipart/form-data、text/html等。

还需要知道接口的url、参数类型、返回结果的数据格式、了解接口是否有header、cookie等信息。 

接口的实现:请求方式-get,接口的写法:

 import flask from flask import request from flask import jsonify import tools import OP_db import settings ''' flask: web框架,可以通过flask提供的装饰器@server.route()将普通函数转换为服务 登录接口,需要传url、username、passwd ''' #创建一个服务,把当前这个python文件当做一个服务 server = flask.Flask(__name__) #server.config['JSON_AS_ASCII'] = False  # @server.route()可以将普通函数转变为服务 登录接口的路径、请求方式 @server.route('/login', methods=['get']) def login():  # 获取通过url请求传参的数据  username = request.values.get('name')  # 获取url请求传的密码,明文  pwd = request.values.get('pwd')  # 判断用户名、密码都不为空,如果不传用户名、密码则username和pwd为None  if username and pwd:   # 获取加密后的密码   password = tools.md5_pwd(pwd)   #执行sql,如果查询的username和password不为空,说明数据库存在admin的账号   sql = 'select name,password from test where name= "%s" and password= "%s";' %(username, password)   # 从数据查询结果后,res返回是元组   res = OP_db.getconn(    host=settings.mysql_info['host'],    user=settings.mysql_info['user'],    passwd=settings.mysql_info['pwd'],    db=settings.mysql_info['db'],    port=settings.mysql_info['port'],    sql=sql   )   if res:  #res的结果不为空,说明找到了username=admin的用户,且password为加密前的123456    resu = {'code': 200, 'message': '登录成功'}    return jsonify(resu) #将字典转换为json串, json是字符串   else:    resu = {'code': -1, 'message': '账号/密码错误'}    return jsonify(resu)  else:   res = {'code': 999, 'message': '必填参数未填写'}   return jsonify(res)  if __name__ == '__main__':  server.run(debug=True, port=8888, host=0.0.0.0) #指定端口、host,0.0.0.0代表不管几个网卡,任何ip都可以访问
md5加密、数据库mysql的操作详见我的其他博客~~~~~

get访问接口:

项目启动后,接口的地址是:http://127.0.0.1:5000/,默认端口是5000。

打开浏览器,输入urlhttp://127.0.0.1:5000/xxx?name=xxx&pwd=123456,后面跟上接口的地址login,参数跟url直接使用?相连,每个请求参数直接使用&相连。请求成功,则返回{'code': 200, 'message': '登录成功'}。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表