[Django]张琳制作RESTAPIシャベル1弾
興奮した瞬間にN時間後に出てきたシャベルの成果を見てみましょう.
必要なパッケージのインストール
djangostrestframework-jwtは、最新バージョンのライブラリを使用しているため、エラーが発生しました.後で...これは長い間かき回していたので
安心して「djangorestframework-simplejwt」にインストールし、将来的にもお勧めします.
チャンゴに前にインストールしたパッケージを使うと伝えてください.
「INSTALLED APPS」と「MIDDLEWARE」を変更します. django-cors-headersネクタイ DRF(Django Rest Framework) and Vue.js - RyanKim 長高COSクロスドメインホットスポット settings.pyにcors関連設定を追加します.
settings.pyに追加・JWTをドラムに使用(django):設定ごとに詳しく説明しすぎ、、、親切、、 SITE_ID : 'django.contrib.「sites」がアプリケーションに追加され、adminページ番号が表示されます. 「DEFAULT PERMISSION CLASSES」:defaultに設定されている場合、API要求にトークンがないことはできません.アプリケーションの設定に従って、コメントをしたいです. JWT AUTH:JWTタグ関連設定.貨幣維持時間は6時間、7日後無条件で貨幣が期限切れ
1.取り付け~!
必要なパッケージのインストール
pip3 install django-rest-auth
pip3 install django-allauth
pip3 install django-rest-framework
pip3 install django-cors-headers
pip3 install djangorestframework-jwt
**修正**djangostrestframework-jwtは、最新バージョンのライブラリを使用しているため、エラーが発生しました.後で...これは長い間かき回していたので
安心して「djangorestframework-simplejwt」にインストールし、将来的にもお勧めします.
pip3 install djangorestframework-simplejwt
2.追加-!
チャンゴに前にインストールしたパッケージを使うと伝えてください.
「INSTALLED APPS」と「MIDDLEWARE」を変更します.
#settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
'rest_auth',
'rest_auth.registration',
'allauth',
'rest_framework',
'rest_framework.authtoken',
'corsheaders',
'webtoons',
]
MIDDLEWARE = [
'corsheaders.middleware.CorsMiddleware',
.
.
.
]
3.CORSの設定
#settings.py
#cors관련 셋팅
from corsheaders.defaults import default_methods
CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = [
"http://127.0.0.1:8000",
"http://localhost:8000",
]
CORS_ALLOW_METHODS = list(default_methods) + [
"",
]
CORS_ALLOW_HEADERS = (
'accept',
'accept-encoding',
'authorization',
'access-control-request-method',
'access-control-request-headers',
'content-type',
'dnt',
'origin',
'user-agent',
'x-csrftoken',
'x-requested-with',
)
4.JWTの設定
settings.pyに追加
REST_FRAMEWORK = {
# 'DEFAULT_PERMISSION_CLASSES': ( #로그인여부확인, 유효한 유저만 접근가능하도록 설정
# 'rest_framework.permissions.IsAuthenticated',
# ),
'DEFAULT_AUTHENTICATION_CLASSES': ( #인증방식클래스설정
'rest_framework_simplejwt.authentication.JWTAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework.authentication.BasicAuthentication',
),
}
SITE_ID = 1 #Admin 페이지 관리번호 로 단일한 서버는 1번
REST_USE_JWT = True
AUTH_USER_MODEL = 'users.User'
JWT_AUTH = {
'JWT_SECRET_KEY': os.environ.get('SECRET_KEY2'),
'JWT_ALGORITHM': 'HS256',
'JWT_ALLOW_REFRESH': True,
'JWT_EXPIRATION_DELTA': datetime.timedelta(hours=6),
'JWT_REFRESH_EXPIRATION_DELTA': datetime.timedelta(days=7),
}
Reference
この問題について([Django]张琳制作RESTAPIシャベル1弾), 我々は、より多くの情報をここで見つけました https://velog.io/@martinalee94/Djangoテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol