1. 程式人生 > >python-----編寫介面,使用postman與soapiu訪問呼叫

python-----編寫介面,使用postman與soapiu訪問呼叫

例項:自己寫一個註冊介面 輸入使用者名稱、密碼、驗證碼,當滿足註冊將密碼進行md5加密。
場景
介面返回引數
提示
使用者名稱存在
2000
exit 使用者已存在
密碼與驗證碼不相等
3000
wrong 密碼不一致
註冊成功
1000
 
insert 插入成功
URL與傳入引數
介面訪問地址
http://127.0.0.1:9009/regist
請求方式
Post
傳入引數
username 使用者名稱
password 密碼
cpassword 確認密碼
 
Mysql資料庫
資訊
Ip
192.168.*.*
使用者名稱
root
密碼
12345
資料庫選用
t2
表名
test2
表結構
name char(10),pw char(50)

 

 

----------------------------程式碼---------------------------------------------------------------------------------

#寫一個註冊介面,輸入使用者名稱、密碼、驗證碼:
# 如果使用者存在,返回2000(exit 使用者已存在);
# 如果密碼與驗證碼不一致,返回3000(wrong 密碼不一致);
# 如果註冊成功,返回1000(insert 插入成功)

#注意:
#1、介面返回json.dumps(res, ensure_ascii=False)
#2、介面中的sql語句傳遞變數%s 需要“”;
# sql = 'insert into test2(name,pw) values ("%s","%s")' % (username, new_password)
#3、md5加密,引數需要encode,返回值需要hexdigest()
import flask
import requests
import json
import pymysql
import hashlib

MYSQL_INFO = {
'host':'192.168.*.*',
'user':'root',
'password':'12345',
'port':3306,
'db':'t2',
'charset':'utf8',
'autocommit':'True'
}#資料庫配置資訊

def my_db(sql,**kwargs):
host=kwargs.get('host')
user = kwargs.get('user')
password = kwargs.get('password')
port = kwargs.get('port')
db = kwargs.get('db')
charset = kwargs.get('charset')
autocommit = kwargs.get('autocommit')

coon = pymysql.connect(host=host, user=user, password=password, port=port, db=db, charset=charset,autocommit=autocommit)
cur = coon.cursor()
cur.execute(sql)
sql_start=sql[:6].lower()
if sql.startswith('select') or sql.startswith('show'):
data=cur.fetchall()
else:
data='OK'
cur.close()
coon.close()
print(data)
return data


def md_5(pd):
newpd = hashlib.md5(pd.encode())
# print(newpd.hexdigest())
return newpd.hexdigest()


server = flask.Flask(__name__)
@server.route('/regist',methods=['get','post'])
def regist():
username = flask.request.values.get('username')
password = flask.request.values.get('password')
cpassword = flask.request.values.get('cpassword')

sql = 'select * from test2 where name="%s"' %username
all_data=my_db(sql,**MYSQL_INFO)
print(all_data)
if all_data:
res = {'code': '2000', 'msg': 'exit 使用者已存在'}
else:
new_password=md_5(password)
print(new_password)
if password==cpassword:
sql = 'insert into test2(name,pw) values ("%s","%s")' % (username, new_password)
my_db(sql, **MYSQL_INFO)
res = {'code': '1000', 'msg': 'insert 插入成功'}
else:
res = {'code': '3000', 'msg': 'wrong 密碼不一致'}
return json.dumps(res, ensure_ascii=False)

if __name__ == "__main__":
server.run(port=9009, debug=True)


---------------------------用postman與soapui訪問------------------------------------------

postman訪問

 

 

3)soapui訪問

注意:soapui新建rest專案時,需要輸入網址,系統自動分開方填入reques介面第一行。

A:新建rest專案

 

B:輸入url:


c:輸入引數