[python、flask] - POST請求

1. 微信小程序POST傳遞數據給flask服務器

  • 小程序端
// 提交POST數據
import { request } from "../../request/index.js"
  async handleDetectionPoints() {
    let params = {
      url: "/detect_points",
      data: {
        "points": arr,
        "img_name": this.canvasConfig.imgName
      },
      header: {},
      method: "POST"
    }
    let res = await request(params)
    console.log(res)
  }
  • 上面用到的request函數
// request/index.js

let ajaxTimes = 0

export const baseURL = "http://192.168.0.106:5000";

export const request = params => {
  let header = { ...params.header
  }
  ajaxTimes++;

  wx.showLoading({
    title: '加載中',
    mask: true
  })

  // 定義公共的URL
  params.url = baseURL + params.url

  return new Promise((resolve, reject) => {
    wx.request({
      ...params,
      header,
      success: result => {
        resolve(result)
      },
      fail: err => {
        reject(err)
      },
      complete: () => {
        ajaxTimes--
        if (ajaxTimes == 0) {
          wx.hideLoading()
        }
      }
    })
  })
}
  • flask端接收POST請求數據
from falsk import Flask, request

app = Flask(__name__)
@app.route("/detect_points", methods=["POST"])
def detect_points():
	print(request.json.get("points"))
	print(request.json.get("img_name"))
	return {
	  "msg": "ok"
	}

if __name__ == "__main__":
	app.run(host="192.168.0.106", port=5000)

在這裏插入圖片描述

2. python發送post數據給flask服務器

  • 拿上面的flask做爲代理轉發POST請求(JSON格式發送)
import json
@app.route("/detect_points", methods=["POST"])
def detect_points():
	payload = json.dumps({
		"points": request.json.get("points"),
		"img_name": request.json.get("img_name")
	})
	r = request.post("http://192.168.0.106:8888/detect_points")
	print(r.text)
	return{
		"msg": "ok"
	}
  • 接收JSON格式POST數據的服務端
from flask import Flask, request
import json

app = Flask(__name__)



@app.route("/detect_points", methods=["POST"])
def hello_world():
    print("來自5000")
    data  = request.get_data()
    print(data)
    data = json.loads(data.decode("utf-8"))
    print(data["img_name"])
    print(data["points"])

    return "Hello Marron1"



if __name__ == "__main__":
    app.run(host="192.168.0.106", port=8888)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章