Kia*_*ian 8 python django django-rest-framework
我正在尝试使用Django Rest Framework设置一个简单的API,问题是我的API没有任何数据库,但如果没有数据库设置,框架将无法工作.
这是我的Django Rest Framework配置settings.py:
INSTALLED_APPS = [
'provider',
'django_nose',
'rest_framework',
'django.contrib.contenttypes',
]
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [],
'DEFAULT_PERMISSION_CLASSES': [],
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
配置不正确("settings.DATABASES未正确配置."django.core.exceptions.ImproperlyConfigured:settings.DATABASES配置不正确.请提供ENGINE值.检查设置文档以获取更多详细信息.
是否有任何不包含的最小设置django.contrib.contenttypes和django.contrib.auth?
如果你真的被迫使用数据库但你不想这样做,你可以使用:memory:SQLite后端,如下所示:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
}
}
Run Code Online (Sandbox Code Playgroud)
这使用内存数据库,因此不会触及您的文件系统.
由于内存是易失性的,因此您可能需要在每次启动Web应用程序时自动运行迁移.
问题的实际原因是DRF尝试向其添加user属性request.文件中简要提到,机制如下:
如果没有类进行身份验证,
request.user则会将其设置为实例django.contrib.auth.models.AnonymousUser
因此,它需要django.contrib.auth应用程序正确运行,因此django.contrib.auth需要数据库的工作配置才能执行.
此问题的解决方案是将settings UNAUTHENTICATED_USER属性设置为None.
更改后配置将如下所示:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [],
'DEFAULT_PERMISSION_CLASSES': [],
'UNAUTHENTICATED_USER': None,
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6904 次 |
| 最近记录: |