【问题标题】:Why swagger documentation doesn't work on PythonAnywhere domain?为什么 swagger 文档不适用于 PythonAnywhere 域?
【发布时间】:2021-02-23 23:32:57
【问题描述】:

我使用 swagger 在 Django rest 框架上记录我的 API,并将其部署在 Pythonanywhere 上。 但文档 URL 没有任何响应。

这是我的 urls.py 代码,用于招摇:

from drf_yasg.views import get_schema_view
from drf_yasg import openapi
     schema_view = get_schema_view(
       openapi.Info(
          title="BoardGame API",
          default_version='v1',
          description="Test description",
          terms_of_service="http://****.pythonanywhere.com/",
          contact=openapi.Contact(email="contact@boardgame.local"),
          license=openapi.License(name="TEST License"),
       ),
       public=True,
       permission_classes=(permissions.AllowAny,),
    )
    urlpatterns = [
        ...
        path('', schema_view.with_ui('swagger', cache_timeout=0), name='schema-swagger-ui'),
    ]

还有我的 settings.py

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
    'drf_yasg',
    'rest_framework_swagger',
    'rest_framework_simplejwt',
    'django_extensions',
   ...
]

【问题讨论】:

  • 它确实有响应。它向您展示了某种 Django 页面。这表明您的 swagger 文档可能不在根 URL 上。检查您的其他 urls.py 文件以确定您的 swagger 文档在哪个路径上发布。

标签: python django django-rest-framework swagger pythonanywhere


【解决方案1】:

这是因为您的静态文件尚未加载到服务器上尝试收集静态文件并检查页面是否正在加载css

【讨论】:

    【解决方案2】:
    1. 你必须了解 Django 中的静态

    2. 当您应用它时,所有与 UI 相关的文件都将创建在一个静态文件夹中

    3. 那么 swagger UI 就可以在 pythonanywhere 上运行了

    【讨论】:

      猜你喜欢
      • 2019-09-27
      • 1970-01-01
      • 2011-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-06-07
      • 2021-03-31
      • 1970-01-01
      • 2021-04-19
      相关资源
      最近更新 更多