pyhton【flask接口開發】

使用flask進行接口開發python

 

語言:Python3數據庫

框架:flaskjson

 

在進行開發前首先得安裝flask,而後才能使用。安裝能夠直接使用pip命令進行安裝:pip install flask。flask

使用flask進行接口的流程:框架

一、定義一個服務server:函數

server = flask.Flask(__name__)          #建立一個服務,把當前的python文件當作一個服務啓動,__name__表明當前的python文件。

二、定義接口函數:post

接口函數的定義須要在定義函數上面加上flask提供的裝飾器 「@server.route()」,將普通函數轉換爲服務登陸接口。spa

@server.route('/regist',methods=['get','post'])       #第一個參數表示請求接口路徑,第二個參數表示接口請求方式,若是不填的話默認get方式。

三、運行服務server:debug

server.run(port=8000,debug=True,host='127.0.0.1')    # port不能與本地服務端口衝突,host爲要訪問的IP地址,debug=True,表示當前爲調試狀態運行,修改完代碼程序會自動運行,不須要手動從新運行。

 

按照以上步驟完成一個小接口:調試

示例一:

import flask,json

server = flask.Flask(__name__)               #建立一個服務,把當前的python文件當作一個服務啓動,__name__表明當前的python文件。

@server.route('/regist',methods=['post'])       #第一個參數表示請求接口路徑,第二個參數表示接口請求方式,若是不填的話默認get方式。
def index():
    res = {'msg':'這是我開發的第一個接口','msg_code':'0000'}
    return json.dumps(res,ensure_ascii=False)  #二進制轉化爲utf-8

server.run(port=8000,debug=True,host='127.0.0.1')  #port不能與本地服務端口衝突,host爲要訪問的IP地址,debug=True,表示當前爲調試狀態運行,修改完代碼程序會自動運行,不須要手動從新運行。

使用postman請求後結果以下:

示例二:

接口實現接收請求數據,並對接收數據按照必定方式進行驗證簽名,簽名經過後,獲取接口請求過來的用戶信息,查找數據庫中是否存在該條記錄,無記錄進行註冊步驟。

import flask,json

server = flask.Flask(__name__)          #__name__表明當前的python文件。把當前的python文件當作一個服務啓動

@server.route('/regist',methods=['post'])       #接口請求地址及接口請求方式
def regist():
    jsondata = flask.request.get_json()                     #獲取到的值爲請求的json串
    username = jsondata['username'] if ('username' in jsondata) else ''                       
    password = jsondata['password'] if ('password' in jsondata) else ''
    signjudge = signMD5.signjudge()
    if signjudge.jsonsignjudge(jsondata) != jsondata['sign']:
        ########## 簽名校驗失敗 ##########
        return json.dumps({'msg': '簽名校驗失敗', 'msg_code': '3001'}, ensure_ascii=False)
    else:
        pass
    if username == '' or password == '':
        ########## 缺乏必填信息 ##########
        return json.dumps({'msg': '缺乏必填信息', 'msg_code': '1001'}, ensure_ascii=False)
    else:
        pass
    interfacejudge = interfcaejudge.interfacejudge()
    if interfacejudge.judgefielduser(username) != None:
        return json.dumps({'msg': '用戶已存在', 'msg_code': '2001'}, ensure_ascii=False)
    else:
        interfacejudge.insertsuerinfo(username,password)
        return json.dumps({'msg': '註冊成功', 'msg_code': '0000'}, ensure_ascii=False)

server.run(port=8000,debug=True,host='127.0.0.1')
相關文章
相關標籤/搜索