[Django実戦]第3編-ユーザ認証(初期構成)


前の2編はDjangoの理論を述べて、この編から、私たちは本当にDjangoの実戦部分に入って、今日はまずユーザーの認証から始めます.
皆さんが普段ウェブサイトを開くとき、最初のステップは普通何をしますか?ほとんどは先にログインしていると思いますので、ユーザー認証から始めます.
ユーザー認証を開く
Django自体はすでにユーザー認証モジュールを提供しているので、私たちがしなければならないことは簡単です.それに基づいてカスタマイズされたものを追加することです.デフォルトでは、Djangoのユーザー認証モジュールが開いています.ユーザーモジュールが開いているかどうかを確認するには、次の手順に従います(settings.pyファイル).
1、MIDDLEWARE_を確保するCLASSESには'djangoが含まれている.contrib.sessions.middleware.SessionMiddleware'. 2、INSTALLED_を確認するAPPSには'django.contrib.sessions'3、'django.contrib.auth'はあなたのINSTALLEDに置いてあります.APPS設定でmanageを実行します.py syncdbを使用して、対応するデータベース・テーブルを作成します.4、SessionMiddlewareの後ろにあるMIDDLEWAREを確認するCLASSSESの設定には'djangoが含まれています.contrib.auth.middleware.AuthenticationMiddleware'.
データベース構成
ユーザー認証システムは必然的にデータベースから離れられない.ユーザー情報はデータベースに保存する必要があるため、Djangoが持参したユーザー認証システムも例外ではない.使用する前に、データベースを構成する必要があります.Djangoはほとんどの主流データベースをサポートしています.ここではOracleデータベースを採用しています.まずcx_をインストールする必要があります.Oracleデータベースにアクセスするには、Djangoを使用する必要があります.cx_のインストール方法についてOracleモジュールは、ここでは説明しません.詳細は公式ドキュメントを参照してください.
次に、Oracleにユーザーを作成します.Djangoプロジェクトで作成したすべてのテーブルがそのユーザーの下に作成されます.そのため、次の権限が必要です.
SQL> create user dbrelease identified by *** default tablespace dbrelease;

SQL> grant resource,create session,unlimited tablespace to dbrelease;
でsettings.pyのDatabasesプロパティでdjango接続oracleを設定します.
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.oracle', 
        'NAME': 'lxdbtest',                     
        'USER': 'dbrelease',
        'PASSWORD': '***',
        'HOST': '192.168.1.16',                      
        'PORT': '1521',                      
    }
}
注:上のNAMEはOracleのinstance_を指します.name
では、Oracleに正常に接続できるかどうかを確認します.
Djangoプロジェクトのホームディレクトリに入りpython manageを実行します.py shellはインタラクティブコマンドラインに入り、次のように入力します.
>>> from django.db import connection
>>> cursor = connection.cursor()
エラーが報告されていない場合は、構成が成功したことを示します.
最後にsyncdb文を実行し、次の出力から、ユーザー認証システムがデフォルトでデータベースに次のテーブルを作成していることがわかります.
# python manage.py syncdb
Creating tables ...
Creating table auth_permission
Creating table auth_group_permissions
Creating table auth_group
Creating table auth_user_groups
Creating table auth_user_user_permissions
Creating table auth_user
Creating table django_content_type
Creating table django_session
Creating table django_site