@pgamesorg

Как внедрить сторонний код в проект Django?

Привет всем!

По мере изучения Django я делаю проект.

И вот я изучил модели представления шаблоны ну пока основы, и возникла такая проблема после добавлении модели которые содержит в себе поле с ip, Port, protocol и т.д

Мне нужно, чтобы я мог получить данные от удаленного устройства, адрес которого указан в модели

Сам код который это получает есть, но как его внедрить в Джанго?

В итоге я должен получить просто json файл от того устройства

вот этот сторонний код

import requests
import json

__BASE_URL__ = "http://194.67.209.244:8080/api/"
__HOST_URL__ = __BASE_URL__ + "host"
__USER_URL__ = __BASE_URL__ + "user"
__ARCH_URL__ = __BASE_URL__ + "arch"

class IoTDevices(object):
    def __init__(self, name=None, id = None):
        if name is not None:
            self.name = name
        else:
            self.name = ""
        if id is not None:
            self.id = id
        else:
            self.id = 0
        self.protocol = ""
        self.port = 9090
        self.emac = ""
        self.ip_address = "0.0.0.0"
        self.type = ""
        self.option = {}
        self.items = {}
        self.description = ""
        # Загружаем данные с сервера
        self.load_devais(to_name=(self.id == 0))

    def load_devais(self, to_name=True):
        if to_name:
            _param = self.hosts_request(method="host.get", name=self.name)
        else:
            _param = self.hosts_request(method="host.get", id=self.id)
        self.result = _param["result"]
        if self.result == "OK":
            self._response =_param["response"][0]
            self.name = self._response["name"]
            self.id = self._response["id"]
            self.type = self._response["type"]
            self.ip_address = self._response["ip_address"]
            self.protocol = self._response["protocol"]
            self.port = self._response["port"]
            self.emac = self._response["emac"]
            self.option = self._response["option"]
            self.items = self._response["items"]
            self.description = self._response["description"]
        else:
            # TODO
            """
                Описать ошибку
            """
            raise Exception()

    def load_arch(self, time_from=None, time_to=None, select=0):
        d = {}
        if time_from is not None:
            d.update({"time_from":time_from})
        if time_to is not None:
            d.update({"time_to":time_to})
        if select is not None:
            d.update({"select": select})
        d.update({"name": self.name})
        return self.arch_request(method="arch.filtre", param=d)

    def get_items(self, item=None):
        raw = self.hosts_request("host.items", id=self.id)
        res = raw["result"]
        if res == "OK":
            response = raw["response"]
            self.items = response
        if item is None:
            return self.items
        else:
            return self.items.get(item)

    def param_host(self,param):
        param.update({"id":self.id})
        self.hosts_request("host.update", param)
        self.load_devais(False)

    def hosts_request(self, method, param=None, **kwargs):
        return self.request(method, "host", param=param, **kwargs)

    def user_request(self, method, param=None, **kwargs):
        return self.request(method, "user", param=param, **kwargs)

    def arch_request(self, method, param=None, **kwargs):
        return self.request(method, "arch", param=param, **kwargs)

    def request(self,method,system, param=None, **kwargs):
        if param is not None:
            r = requests.post(url=__BASE_URL__+system, data=json.dumps({"method": method, "param": param}))
            _raw = r.text
            j =json.loads(_raw)
        else:
            r = requests.post(url=__BASE_URL__+system, data=json.dumps({"method": method, "param": kwargs}))
            _raw = r.text
            j = json.loads(_raw)

        return j

    def __str__(self):
        s = "id = %s\n"%self.id
        s = "%sname = %s\n" % (s, self.name)
        s = "%sp_address = %s\n" % (s, self.ip_address)
        s = "%sport = %s\n" % (s, self.port)
        s = "%semac = %s\n" % (s, self.emac)
        s = "%stype = %s\n" % (s, self.type)
        s = "%sprotocol = %s\n" % (s, self.protocol)
        s = "%sitems = %s\n" % (s, self.items)
        s = "%soption = %s\n" % (s, self.option)
        s = "%sdescription = %s\n" % (s, self.description)
        return s
  • Вопрос задан
  • 250 просмотров
Пригласить эксперта
Ответы на вопрос 1
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы