python3封裝Api接口


注:本篇的代碼和語法基於Python3.5環境,下面將用到Python 的Flask框架

封裝接口主要講靜態接口(無參數傳入)、動態接口(有參數傳入,不同參數返回的信息不同)。針對動態接口有三種傳參方式:key_value、json串和拼接方式入參

 

    • 一、封裝成無參數傳入的接口
      from flask import Flask,jsonify,request
      data = {'huhy':{'age':24,'sex':'女'},
              'liuer':{'age':12,'sex':'男'}
              }
      app = Flask(__name__)#創建一個服務,賦值給APP
      @app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
      #講的是封裝成一種靜態的接口,無任何參數傳入
      def get_user():#-----這里的函數名稱可以任意取
          return  jsonify(data)#把字典轉成json串返回
      
      app.run(host='0.0.0.0',port=8802,debug=True)
      #這個host:windows就一個網卡,可以不寫,而liux有多個網卡,寫成0:0:0可以接受任意網卡信息,
       通過訪問127.0.0.1:8802/get_user,可返回data信息
      #debug:調試的時候,可以指定debug=true;如果是提供接口給他人使用的時候,debug要去掉
      接口返回的截圖如下:



    • 二、有參數傳入的接口
       1.通過key_value方式傳參
      from flask import Flask,jsonify,request
      data = {'huhy':{'age':24,'sex':'女'},
              'liuer':{'age':12,'sex':'男'}
              }
      err = {'zz':404,
             'yy':502
             }
      app = Flask(__name__)#創建一個服務,賦值給APP
      @app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
      
      # key_values方式傳參
      def get_user():
          username = request.form.get('username')#獲取接口請求中form-data的username參數傳入的值
          if username in data:#判斷請求傳入的參數是否在字典里
              return jsonify(data[username])
      #如果在的話,則返回data對應key的值轉成的json串信息
          else:
              return jsonify(err[username])
      #如果不在的話,返回err對應key的value轉成的json串信息
      
      app.run(host='0.0.0.0',port=8802,debug=True)
      #這個host:windows就一個網卡,可以不寫,而liux有多個網卡,寫成0:0:0可以接受任意網卡信息
      #通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數,則可看到返回信息
      

      接口返回的截圖如下:



      2.通過json串方式傳參
      from flask import Flask,jsonify,request
      data = {'huhy':{'age':24,'sex':'女'},
              'liuer':{'age':12,'sex':'男'}
              }
      err = {'zz':404,
             'yy':502
             }
      app = Flask(__name__)#創建一個服務,賦值給APP
      @app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
      
      #json方式傳參
      def get_ss():
          username = request.json.get('username1')#獲取帶json串請求的username參數傳入的值
          if username in data:  # 判斷請求傳入的參數是否在字典里
              return jsonify(data[username])
      #如果在的話,則返回data對應key的值轉成的json串信息
          else:
              return jsonify(err[username])
      #如果不在的話,返回err對應key的value轉成的json串信息
      app.run(host='0.0.0.0',port=8802,debug=True)
      #這個host:windows就一個網卡,可以不寫,而liux有多個網卡,寫成0:0:0可以接受任意網卡信息
      #通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數,則可看到返回信息
      接口返回的截圖如下:



      3.請求鏈接直接拼接入參方式
      from flask import Flask,jsonify,request
      data = {'huhy':{'age':24,'sex':'女'},
              'liuer':{'age':12,'sex':'男'}
              }
      err = {'zz':404,
             'yy':502
             }
      app = Flask(__name__)#創建一個服務,賦值給APP
      @app.route('/get_user',methods=['post'])#指定接口訪問的路徑,支持什么請求方式get,post
      
      #請求后直接拼接入參方式
      def get_ss():
          username = request.args.get('username')#使用request.args.get方式獲取拼接的入參數據
          if username in data:  # 判斷請求傳入的參數是否在字典里
              return jsonify(data[username])
      	#如果在的話,則返回data對應key的值轉成的json串信息
          else:
              return jsonify(err[username])
      	#如果不在的話,返回err對應key的value轉成的json串信息
      app.run(host='0.0.0.0',port=8802,debug=True)
      #這個host:windows就一個網卡,可以不寫,而liux有多個網卡,寫成0:0:0可以接受任意網卡信息
      #通過訪問127.0.0.1:8802/get_user,form—data里輸入username參數,則可看到返回信息

      接口返回的截圖,如下:




      4.request.values.get()獲取請求參數的方法,不僅支持獲取連接拼接的參數,而且還能獲取body form填入的參數

    • 未完待續


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM