Python/pyqt5/CODE/VIP_WMS_pyAPI/VIP_WMS_api.py

118 lines
3.6 KiB
Python
Raw Normal View History

2024-06-25 22:02:02 +08:00
import json
import requests
import urllib3
import time
from requests.structures import CaseInsensitiveDict
import base64
import pandas as pd
from PyQt5.QtWidgets import QApplication, QWidget, QLabel, QLineEdit, QVBoxLayout, QPushButton, QMessageBox
request_url="http://140.125.21.70:7071"
#筆記:
#Parking_spaces_API是通訊底層headers是令牌fun是funtion名稱在使用api時Parking_spaces_API(fun,headers)
#response函式庫使用request.get(總URL,data=要放的data)
#http://localhost:7700=>request_url 這個URL已經是固定所以在底層時就會先寫死
#/api/Model名稱//{id}=>fun
#通訊底層
class WMS_API():
def __init__(self, Fun, headers, *args):
self.headers = headers
self.Fun = Fun
def post(self, data):
data_json = json.dumps(data)
response = requests.post(request_url + self.Fun, data=data_json, headers=self.headers, verify=False)
return response
def get(self):
response = requests.get(request_url + self.Fun, headers=self.headers, verify=False)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame.from_records(data)
return df
else:
return
def delete(self):
response = requests.delete(request_url + self.Fun, headers=self.headers, verify=False)
return response
def getSingleData(self):
response = requests.get(request_url + self.Fun, headers=self.headers, verify=False)
if response.status_code == 200:
data = response.json()
df = pd.DataFrame.from_records(data, index=[0])
return df
else:
return
#電料類
class Vip_api():
def __init__(self,):
self.token=None
pass
def verify(self,username,password):
API = "/Users/Verifypassword"
data = {
'username': username,
'password': password
}
headers = {'Content-type': 'application/json'}
response=WMS_API(API,headers).post(data)
if response.status_code == 200:
self.token = response.json().get('token')
return True
else:
return False
def get_token(self):
return self.token
def get_all_data(self,model_name):
API = "/api/"+model_name
headers = CaseInsensitiveDict()
headers['Accept'] = 'application/json'
data = WMS_API(API, headers).get()
return data
def createitem(self,model_name,item,account,location,itemimage):
self.token=self.get_token()
print(self.token)
API= "/api/"+model_name+"/"+item
headers = {
'Content-type': 'application/json',
"Authorization": self.token
}
print(headers)
data = {
"item": item,
"account": account,
"location": location,
"itemimage": itemimage
}
data=WMS_API(API,headers).post(data)
print(data.status_code)
#登入系統JWT
# class User():
# def __init__(self,):
#
# def verify(self,username,password):
# API = "/Users/Verifypassword"
# data = {
# 'username': username,
# 'password': password
# }
# headers = {'Content-type': 'application/json'}
# response=WMS_API(API,headers).post(data)
# if response.status_code == 200:
# self.token = response.json().get('token')
# print("Login successful. Token saved.")
# return True
# else:
# print("Login failed.")
# return False
# def get_token(self):
# return self.token