djangoで外部APIへの呼び出しを制限する方法

マークミラー

YouTubeチャンネルのすべての投稿を表示するアプリがあります。そのために、views.pyで呼び出すyoutube-APIv3を使用します。次に、レンダリング関数にコンテキストとして渡すすべてのデータをデータベースに保存します。

return render(request, "blog/home.html", context)

最後のAPI呼び出しが5分前の場合にのみAPIを呼び出し、それ以外の場合はデータベース内のデータを使用することが可能かどうか疑問に思いました。

私が持っているアイデアの1つは、API呼び出しが行われるたびに現在の日時をファイルに保存し、views-functionが呼び出されるたびに、現在の日時をファイル内の日時と比較することです。しかし、これは非効率的で、もっと良い方法があるのではないかと思っていました。

ブライアンうん

私はあなたが説明したのと同じようなことをしましたが、これがあなたの助けになるかどうかはわかりません。私の場合、1分ごとにのみ再度リクエストできます

@api_view(['GET'])
@permission_classes([AllowAny])
def api_get_cha3_price(request):
response_data = {}
# Get Cha3 price and the logics

d = CryptoPrice.objects.get(name='CHA3')  # get the last updated time
d = d.date.replace(tzinfo=None) + timedelta(hours=8,
                                            seconds=3)  # +8 hours because it's malaysia time and 1 minute is so that if > 1 minute can request again
d1 = datetime.now()

cha3 = CryptoPrice.objects.get(name='CHA3')

if d1 > d:
    import time
    try:
        timestamp = int(time.time() * 1000)
        response = requests.get(
            f"API_URL",
            timeout=2)

        if response.status_code == 200:
            data = response.json()

            cha3.price = data['data'][0]['price']
            cha3.date = timezone.now()
            cha3.save()

            cha3_price = cha3.price

            response_data["cha3_price"] = f"{cha3_price}"

    except(requests.exceptions.Timeout, requests.exceptions.ConnectionError, KeyError, TypeError):
        cha3_price = cha3.price
        response_data["ERROR"] = f"{cha3_price}"

else:
    cha3_price = cha3.price
    response_data["cha3_price"] = f"{cha3_price}"
return Response(data=response_data)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

関数への呼び出しを制限する

分類Dev

jet.com APIへのAPI呼び出し制限とは何ですか?

分類Dev

マップを動的に閲覧している間、FlickrのAPIへの呼び出しを制限します

分類Dev

Springで外部APIへの呼び出しを使用してサービスをテストする方法

分類Dev

Pythonで関数呼び出しの実行時間を制限する方法

分類Dev

djangoで30分のAPI呼び出しを実行する方法

分類Dev

クエリセットによるデータベースへのSQL呼び出しでクエリされるdjangoフィールドを制限する

分類Dev

microappsNode.jsモジュールを使用してShopifyのAPI呼び出し制限を処理する方法

分類Dev

Railsでの外部API呼び出しを減らす方法

分類Dev

Meteor外部API呼び出しは、呼び出しまたはスリープを制限しますか?

分類Dev

API呼び出しの数を制限するにはどうすればよいですか?

分類Dev

APIへの動的呼び出しでngforをネストする方法

分類Dev

APIへの非同期呼び出しを処理する方法は?

分類Dev

関数呼び出しの深さ制限を回避する方法は?

分類Dev

APIへの呼び出しを最小限にするアルゴリズム

分類Dev

外部呼び出しが制限時間を超えた場合にスクリプトを終了する方法

分類Dev

miunteの間隔で関数呼び出しを最大15回に制限する

分類Dev

anglejs ngResource($ resource)で行われたREST呼び出しの時間制限を設定する方法

分類Dev

入力ごとのajax呼び出しを制限する

分類Dev

AJAX呼び出しからの結果を制限する

分類Dev

API制限に一致するように非同期API呼び出しを遅くする方法は?

分類Dev

PHPで大きなメモリ制限を使い果たすfgetcsv()への単一の呼び出し

分類Dev

API呼び出しは500件の結果に制限されています-すべての結果を取得するために反復する方法は?

分類Dev

Laravel Spark-1か月あたりのプランAPI呼び出しと1分/時間あたりのAPI呼び出しを制限できますか?

分類Dev

API呼び出しでFutureBuilderを使用する際の無限ループ

分類Dev

useQueryによるAPI呼び出しを1回だけ呼び出されるように制限するにはどうすればよいですか?

分類Dev

RxJを使用して間隔ごとのAPI呼び出しの数を制限するにはどうすればよいですか?

分類Dev

useEffectの外部でAPI呼び出しを反応させる

分類Dev

RxJSで複数のajax呼び出しの圧力を制御する方法

Related 関連記事

  1. 1

    関数への呼び出しを制限する

  2. 2

    jet.com APIへのAPI呼び出し制限とは何ですか?

  3. 3

    マップを動的に閲覧している間、FlickrのAPIへの呼び出しを制限します

  4. 4

    Springで外部APIへの呼び出しを使用してサービスをテストする方法

  5. 5

    Pythonで関数呼び出しの実行時間を制限する方法

  6. 6

    djangoで30分のAPI呼び出しを実行する方法

  7. 7

    クエリセットによるデータベースへのSQL呼び出しでクエリされるdjangoフィールドを制限する

  8. 8

    microappsNode.jsモジュールを使用してShopifyのAPI呼び出し制限を処理する方法

  9. 9

    Railsでの外部API呼び出しを減らす方法

  10. 10

    Meteor外部API呼び出しは、呼び出しまたはスリープを制限しますか?

  11. 11

    API呼び出しの数を制限するにはどうすればよいですか?

  12. 12

    APIへの動的呼び出しでngforをネストする方法

  13. 13

    APIへの非同期呼び出しを処理する方法は?

  14. 14

    関数呼び出しの深さ制限を回避する方法は?

  15. 15

    APIへの呼び出しを最小限にするアルゴリズム

  16. 16

    外部呼び出しが制限時間を超えた場合にスクリプトを終了する方法

  17. 17

    miunteの間隔で関数呼び出しを最大15回に制限する

  18. 18

    anglejs ngResource($ resource)で行われたREST呼び出しの時間制限を設定する方法

  19. 19

    入力ごとのajax呼び出しを制限する

  20. 20

    AJAX呼び出しからの結果を制限する

  21. 21

    API制限に一致するように非同期API呼び出しを遅くする方法は?

  22. 22

    PHPで大きなメモリ制限を使い果たすfgetcsv()への単一の呼び出し

  23. 23

    API呼び出しは500件の結果に制限されています-すべての結果を取得するために反復する方法は?

  24. 24

    Laravel Spark-1か月あたりのプランAPI呼び出しと1分/時間あたりのAPI呼び出しを制限できますか?

  25. 25

    API呼び出しでFutureBuilderを使用する際の無限ループ

  26. 26

    useQueryによるAPI呼び出しを1回だけ呼び出されるように制限するにはどうすればよいですか?

  27. 27

    RxJを使用して間隔ごとのAPI呼び出しの数を制限するにはどうすればよいですか?

  28. 28

    useEffectの外部でAPI呼び出しを反応させる

  29. 29

    RxJSで複数のajax呼び出しの圧力を制御する方法

ホットタグ

アーカイブ