ビューなしのトークン認証にDjangoでdjoserを使用する
ジェセル Django用のシンプルな認証ライブラリです。認証用のトークンを生成するために使用されます。この生成されたトークンは、ユーザー名、メールの3つのフィールドを使用して生成されます。 およびパスワード。 POSTリクエストでのみ機能しますが、フロントエンドを追加できます。
例
Djangoプロジェクトとアプリを作成します。 「DjoserExample」という名前を付けました および"myapp" 。
2つのパッケージをインストールする-
pip install djoser pip install djangorestframework
settings.py 次の行を追加します-
INSTALLED_APPS = [ #below every other apps 'myapp', 'rest_framework', 'rest_framework.authtoken', 'djoser' ] # Below template variable REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_framework.authentication.TokenAuthentication', ), 'DEFAULT_PERMISSION_CLASSES': [ 'rest_framework.permissions.IsAuthenticated', ] } DJOSER = { "USER_ID_FIELD": "username" }
ここにジェセルを追加しました およびレストフレームワーク アプリとして。次に、RESTフレームワークの認証バックエンドとdjoserを追加しました。 ユーザーIDを追加しました フィールド(つまり、インデックスフィールド)。
Djangoのデフォルトのユーザー認証データベースを使用しているため、実際にはアプリは必要ありません。
プロジェクトのurls.pyに移動します 次の行を追加します-
from django.contrib import admin from django.urls import path,include,re_path urlpatterns = [ path('admin/', admin.site.urls), path('',include('myapp.urls')), path(r'api/v1/', include('djoser.urls')), path(r'api/v1/token/login, include('djoser.urls.authtoken')) ]
ここでは、 djoser admin urlを定義しました 次に、djoser認証バックエンド。
これで、すべてが設定されました。次に、ターミナルでこれらのコマンドを実行し、出力を確認します-
python manage.py makemigrations python manage.py migrate python manage.py runserver
出力
https://127.0.0.1:8000/api/v1/users/ −
ここでユーザーを作成します。
https://127.0.0.1:8000/api/v1/token/login-
ここでは、ユーザー名とパスワードを入力して、ユーザーのトークンを生成します。
-
デバッグ用のターミナルでのDjangoクエリ数
この記事では、Djangoのライブラリを使用して、デバッグに使用できるターミナルのデータベースクエリ数の簡単なレポートを確認します。モデルオブジェクトのすべてのヒットの簡単な表形式のレポートを提供し、読み取りか書き込みかに関係なく、すべてのヒットに出力します。また、応答と要求も計算します。 例 アプリやURLの設定などの基本的な操作を行います。 django-querycountをインストールします モジュール- pip install django-querycount settings.py内 、これを追加- MIDDLEWARE += [ '
-
ループを使用しない印刷番号シリーズのPythonプログラム
この記事では、以下に示す問題ステートメントの解決策について学習します- 問題の説明 − 2つの数NとKが与えられた場合、問題は、数(N)がゼロ(0)より大きくなるまでNから数Kを引くことです。Nが負またはゼロになると、その数が元の番号(N)。 たとえば、 N = 10 K = 4 Output will be: 10 6 2 -2 2 6 10 アルゴリズム 1. we call the function again and again until N is greater than zero (in every function call we subtra