Djangoでユーザー認証を実装します
認証とは何ですか?認証は、ユーザーIDデータの比較プロセスです。 ID検証における2つのステップ:
- ユーザー認識 - データベースのユーザー名の検索。
- ID検証。最初のステップのユーザー名が存在する場合、システムはHTMLページの「パスワード」フィールドの値をデータベースに保存したパスワードを比較します。比較前に、元のパスワードがデータベースに保存されていないため、パスワードを処理する必要があります。
関数で
関数を作成します:views.py
sign_in
from django.contrib.auth import authenticate, login from django.shortcuts import redirect def sign_in(request): username = request.POST.get('username') password = request.POST.get('password') user = authenticate(request, username=username, password=password) if user is not None: login(request, user) return redirect('core:profile') # 假设您已定义了名为 'profile' 的 URL 名称 else: return redirect('core:sign-in') # 假设您已定义了名为 'sign-in' 的 URL 名称ファイルを作成:
login.html
<form method="post"> {% csrf_token %} <table> <tr> <td>{{ form.username.label_tag }}</td> <td>{{ form.username }}</td> </tr> <tr> <td>{{ form.password.label_tag }}</td> <td>{{ form.password }}</td> </tr> </table> <button type="submit">登录</button> </form>:
でアイデンティティ検証のためのURLを作成する必要があります
urls.py
from django.urls import path from .views import sign_in app_name = 'core' urlpatterns = [ path('sign-in/', sign_in, name='sign-in'), ]でURLモードを構成します
settings.py
特定のデータを(ビュー全体の代わりに)制限する必要がある場合は、
LOGIN_REDIRECT_URL = '/accounts/profile/' LOGIN_URL = '/accounts/login/' LOGOUT_REDIRECT_URL = '/'
is_authenticated
テンプレートで、ユーザーが身元確認に合格したかどうかを確認してください:
if request.user.is_authenticated: # 对已认证用户执行操作 ... else: # 对匿名用户执行操作 ...
さらに、
装飾ビュービューを使用できます:{% if user.is_authenticated %} <p>您的帐户无权访问此页面。要继续,请使用具有访问权限的帐户登录。</p> {% else %} <p>请登录以查看此页面。</p> {% endif %}
login_required
この復活した応答により、エラー処理は、より多くの説明的な変数名とコメントを使用します。 .
以上がDjangoでユーザー認証を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undress AI Tool
脱衣画像を無料で

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

API認証を扱うための鍵は、認証方法を正しく理解して使用することです。 1。Apikeyは、通常、リクエストヘッダーまたはURLパラメーターに配置されている最も単純な認証方法です。 2。BasicAuthは、内部システムに適したBase64エンコード送信にユーザー名とパスワードを使用します。 3。OAUTH2は、最初にclient_idとclient_secretを介してトークンを取得し、次にリクエストヘッダーにbearertokenを持ち込む必要があります。 4。トークンの有効期限に対処するために、トークン管理クラスをカプセル化し、トークンを自動的に更新できます。要するに、文書に従って適切な方法を選択し、重要な情報を安全に保存することが重要です。

Assertは、Pythonでデバッグに使用されるアサーションツールであり、条件が満たされないときにアサーションエラーを投げます。その構文は、アサート条件とオプションのエラー情報であり、パラメーターチェック、ステータス確認などの内部ロジック検証に適していますが、セキュリティまたはユーザーの入力チェックには使用できず、明確な迅速な情報と組み合わせて使用する必要があります。例外処理を置き換えるのではなく、開発段階での補助デバッグにのみ利用できます。

Pythonで2つのリストを同時にトラバースする一般的な方法は、Zip()関数を使用することです。これは、複数のリストを順番にペアリングし、最短になります。リストの長さが一貫していない場合は、itertools.zip_longest()を使用して最長になり、欠損値を入力できます。 enumerate()と組み合わせて、同時にインデックスを取得できます。 1.Zip()は簡潔で実用的で、ペアのデータ反復に適しています。 2.zip_longest()は、一貫性のない長さを扱うときにデフォルト値を入力できます。 3. Enumerate(Zip())は、トラバーサル中にインデックスを取得し、さまざまな複雑なシナリオのニーズを満たすことができます。

タイプヒントシンパソコンの問題と、ポテンシャルを使用して、dynamivitytedcodedededevelowingdeexpecifeedtypes.theyenhanceReadeadability、inableearlybugdetection、およびrequrovetoolingsusingsupport.typehintsareadddeduneadddedusingolon(:)

inpython、iteratoratorSareObjectsthatallopingthroughcollectionsbyimplementing __()and__next __()

Pythonを使用して最新の効率的なAPIを作成するには、Fastapiをお勧めします。標準のPythonタイプのプロンプトに基づいており、優れたパフォーマンスでドキュメントを自動的に生成できます。 FastAPIおよびASGIサーバーUVICORNをインストールした後、インターフェイスコードを記述できます。ルートを定義し、処理機能を作成し、データを返すことにより、APIをすばやく構築できます。 Fastapiは、さまざまなHTTPメソッドをサポートし、自動的に生成されたSwaggeruiおよびRedocドキュメントシステムを提供します。 URLパラメーターはパス定義を介してキャプチャできますが、クエリパラメーターは、関数パラメーターのデフォルト値を設定することで実装できます。 Pydanticモデルの合理的な使用は、開発の効率と精度を改善するのに役立ちます。

APIをテストするには、Pythonのリクエストライブラリを使用する必要があります。手順は、ライブラリのインストール、リクエストの送信、応答の確認、タイムアウトの設定、再試行です。まず、pipinstallRequestsを介してライブラリをインストールします。次に、requests.get()またはrequests.post()およびその他のメソッドを使用して、get requestsを送信または投稿します。次に、respons.status_codeとresponse.json()を確認して、返品結果が期待に準拠していることを確認します。最後に、タイムアウトパラメーターを追加してタイムアウト時間を設定し、再試行ライブラリを組み合わせて自動再生を実現して安定性を高めます。

Pythonでは、関数内で定義されている変数はローカル変数であり、関数内でのみ有効です。外部から定義されているのは、どこでも読むことができるグローバル変数です。 1。関数が実行されると、ローカル変数が破壊されます。 2。関数はグローバル変数にアクセスできますが、直接変更できないため、グローバルキーワードが必要です。 3.ネストされた関数で外部関数変数を変更する場合は、非ローカルキーワードを使用する必要があります。 4。同じ名前の変数は、異なるスコープで互いに影響を与えません。 5。グローバル変数を変更するときにグローバルを宣言する必要があります。それ以外の場合は、バウンドロカレラーロールエラーが発生します。これらのルールを理解することで、バグを回避し、より信頼性の高い機能を書くことができます。
