Django `settings.py`配置详解。配置djangorestframework实例(连接mysql数据库、配置跨域、配置JWT验证)。
2019-01-31 11:50
946 查看
Django settings.py
配置详解。djangorestframework配置。
1、测试模式及允许访问的地址
DEBUG = True #开启debug模式,仅用于开发阶段。 ALLOWED_HOSTS = ['*'] #代表所有地址都可以访问,也可以指定地址访问。
INSTALLED_APPS已安装的模块,如果想添加其他包,可按相同模式添加,我这边要使用djangorestframework包(如果不用,就不要添加),用于做纯后端。
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'DRF_JIJIAN_APP.apps.DrfJijianAppConfig', 'rest_frameword', #这是我自行添加的django-rest-framework包,注意不要忘记英文逗号 'corsheaders', #这是我自行添加的django-cors-headers包,注意不要忘记英文逗号 ]
中间件,request从上往下,依次处理。response由下往上依次返回。
MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', #跨域中间件 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ]
Django使用mysqlclient连接mysql数据库,
settings.py配置。所以需要先安装mysqlclient引擎,安装完成后再这里配置。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'drf_jijian_app', #数据库名 'USER': 'root', #用户名 'PASSWORD': '123', #密码 'HOST': 'localhost', #数据库地址 'PORT': '3306' #数据库端口 } }
Django使用简体中文、上海时间,
settings.py配置。
LANGUAGE_CODE = 'zh-Hans' #简体中文 TIME_ZONE = 'Asia/Shanghai' #上海时间
先在INSTALLED_APPS中添加djangorestframework_simplejwt。这里具体配置
# 引入simplejwt验证模块,用于JWT验证 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( #官网上这么配置,用于permissions权限,结果总是报错,一怒之下注释掉了,结果正常了,permissions也可以用。 # 'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly', #引入simplejwt验证模块,用于JWT验证 'rest_framework_simplejwt.authentication.JWTAuthentication', ) }
SIMPLE_JWT自定义配置,如果使用默认的话,可以不配置。
#simplejwt验证,自定义设置 SIMPLE_JWT = { 'ACCESS_TOKEN_LIFETIME': timedelta(days=7), # access_token的持续时间 'REFRESH_TOKEN_LIFETIME': timedelta(days=7), # refresh_token的持续时间 'ROTATE_REFRESH_TOKENS': False, 'BLACKLIST_AFTER_ROTATION': True, 'ALGORITHM': 'HS256', 'SIGNING_KEY': settings.SECRET_KEY, 'VERIFYING_KEY': None, 'AUTH_HEADER_TYPES': ('Bearer',), 'USER_ID_FIELD': 'id', 'USER_ID_CLAIM': 'user_id', 'AUTH_TOKEN_CLASSES': ('rest_framework_simplejwt.tokens.AccessToken',), 'TOKEN_TYPE_CLAIM': 'token_type', 'SLIDING_TOKEN_REFRESH_EXP_CLAIM': 'refresh_exp', 'SLIDING_TOKEN_LIFETIME': timedelta(days=7), # sliping_token的持续时间 'SLIDING_TOKEN_REFRESH_LIFETIME': timedelta(days=7), }
先在INSTALLED_APPS中添加django-cors-headers。这里配置允许跨域
# 利用django-cors-headers,配置允许跨域,测试阶段配置 CORS_ALLOW_CREDENTIALS = True # 允许所有人跨域访问 CORS_ORIGIN_ALLOW_ALL = True # 允许所有的跨域请求头 CORS_ALLOW_HEADERS = ('*')
相关文章推荐
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服 务器。请验证实例名称是否正确并且 SQL Server 已配置为允
- PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
- 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- SQL2008登录本地数据库时:请验证实例名称是否正确并且 SQL Server已配置为允许远程连接 error:40-无法打开
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服 务器。请验证实例名称是否正确并且 SQL Server 已配置为允
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服 务器。请验证实例名称是否正确并且 SQL Server 已配置为允
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- RedHat 上安装多个 mysql 实例并配置 django 连接的操作记录
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服 务器。请验证实例名称是否正确并且 SQL Server 已配置为允
- 对于打开sql server2008出现验证实例名称是否正确并且 SQL Server 已配置为允许远程连接的问题
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服 务器。请验证实例名称是否正确并且 SQL Server 已配置为允
- 连接数据库与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误,请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- Django连接MySQL数据库配置
- SQL Server2012请验证实例名是否正确并且SQL Server 已配置为允许远程连接。error40等。。
- django1.7的settings.py连接mysql数据库配置
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。
- Django中如何配置mysql数据库详解
- Django中如何配置mysql数据库详解
- 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许远程连接。 (provider: Nam