使用python 实现url 接口的方法

接口基础知识:
简单说下接口测试,现在常用的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、post都可以访问,写法如下:

import flask
from flask import jsonify
from flask import request
from conf import opMysql
from conf import md5_create

'''
注册接口:
post请求,请求参数入参类型json
{
 "username":"aaa",
 "pwd":"123456",
 "c_pwd":"123456"
}
'''
server = flask.Flask(__name__)


@server.route('/register', methods=['get', 'post'])
def registerPost():
    # post请求获取请求的参数,返回结果类型是str
    username = request.values.get('username')
    pwd = request.values.get('pwd')
    confirmpwd = request.values.get('confirmpwd')
    if username and pwd and confirmpwd:  # 判断输入的用户名、密码、确认密码都不为空
        select_sql = 'select username from lhldemo where username = "%s" ;' % username
        # 查询注册的用户是否存在数据库,如果存在,则username不为空,否则username为空
        res_mysql = opMysql.op_select(select_sql)
        if res_mysql:
            return jsonify({"code": 999, "mesg": "用户已注册"})
        else:
            if pwd == confirmpwd:  # 判断pwd和confirmpwd一致
                new_pwd = md5_create.md5_test(pwd)  # 加密后的密码
                insert_sql = 'insert into lhldemo(username,password) values("%s", "%s") ;' % (username, new_pwd)
                opMysql.op_insert(insert_sql)
                return jsonify({"code": 200, "msg": "注册成功"})
            else:
                return jsonify({"code": 998, "msg": "密码不一样"})
    else:
        return jsonify({"code": 504, "msg": "必填项不能为空"})


if __name__ == '__main__':
    # port可以指定端口,默认端口是5000
    # host默认是127.0.0.1,写成0.0.0.0的话,其他人可以访问,代表监听多块网卡上面,
    server.run(debug=True, port=8899, host='0.0.0.0')

可以通过以下2种方式进行post请求,一种如下:

  1. 通过url拼接参数
    http://127.0.0.1:8899/register?name=aaa&pwd=123456
  2. 通过key-value方式进行访问
    http://127.0.0.1:8899/register

全面的接口

你可能感兴趣的:(python,接口)