Откуда нам ударить сторонний apis в django? - PullRequest
0 голосов
/ 08 ноября 2019

Я новичок в Джанго. Итак, моя текущая структура:

--/project
----/settings.py
----/urls.py
----/wsgi.py
--/app1
----/migrations
----/admin.py
----/apps.py
----/models.py
--/app2
----/migrations
----/serializers.py
----/apps.py
----/urls.py
----/views.py

Я хочу знать, где и как (для доступа) я должен кодировать некоторые вещи:

  1. Я хочу подключиться к сторонней службе хранениянажимая на их apis и получая нужные мне данные.
  2. Я хочу сохранить эти данные в моей базе данных в какой-то модели, которую я создал в models.py, скажем, 'Setting'
  3. Я хочу сгенерировать дополнительные данные, используя данные настройки, и сохранить их в базе данных. для другой модели скажем 'Item'
  4. Наконец, Item - это то, что будет отправлено в ответе на остальные API моего приложения, которые я уже достиг.

Прямо сейчас яя бью сторонний apis внутри моего views.py вот так:

class ItemViewSet(viewsets.ModelViewSet):
    queryset = Item.objects.all()
    serializer_class = serializers.ItemSerializer
    authentication_classes = (TokenAuthentication,)
    permission_classes = (IsAuthenticated,)

    def get_queryset(self):
        return self.queryset.order_by('order_id')

    def perform_create(self, serializer):
        """Create a new Item"""
        # generate some auth string and hit api
        # http = urllib3.PoolManager()
        # response_auth = http.request(
        #     'GET',
        #     SOME_URL,
        #     headers={auth: auth_string},
        # )
        # print(response_auth.status)
        # print(response_auth.data)
        # auth_response = json.loads(response_auth.data.decode('utf8'))
        # print(auth_response)
        # serializer.save(user=self.request.user, name=auth_response['name'])

Также некоторые другие поля Item я беру с сайта администратора. И некоторые приходят из API.

...