[英]django - urlpatterns giving 404 error for defined URLs
我有一個在 django 上運行的應用程序。 但是,即使定義了某些 url,我也會收到錯誤代碼 404。
from .views import check_secret_key # a function in views.py
from .swagger_schema import SwaggerSchemaView # a class inheriting APIView
from .kom.kom_writer import kom_status # a function
from django.conf.urls import url
urlpatterns = [
url(r'^docs/api-docs/', SwaggerSchemaView.as_view()),
url(r'^nag/secret-key/', check_secret_key),
url(r'^nag/kom-status/', kom_status),
]
API curl http://localhost:9999/internal/docs/api-docs/
工作正常,但curl http://localhost:9999/internal/nag/kom-status/
和nag/secret-key
fir 404 錯誤。
未找到
在此服務器上找不到請求的資源。
我不確定我錯過了什么。
注意:應用程序最近從 DJango 1.8 更新到 1.11 和 djangorestframework 3.2.5 到 3.5.3。 在此之前,它工作正常。
出於調試目的,我現在只是返回成功響應。
from django.http import HttpResponse
def check_secret_key(request):
r = HttpResponse("I am good", content_type='text/plain', status=200)
return r
好吧,你的定義應該是這樣的
urlpatterns = [
url(r'.*docs/api-docs/', SwaggerSchemaView.as_view()),
url(r'.*nag/secret-key/', check_secret_key),
url(r'.*nag/kom-status/', kom_status),
]
您還需要提供/internal
url 定義。
我發現了這個問題。 應用程序使用兩個 wsgi.py 來運行 django 應用程序。
兩個wsgi.py文件都在使用
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "it.settings.prod")
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "nt.settings.prod")
將其更改為
os.environ["DJANGO_SETTINGS_MODULE"] = "it.settings.prod"
os.environ["DJANGO_SETTINGS_MODULE"] = "nt.settings.prod"
解決了問題。
參考https://docs.djangoproject.com/en/3.1/howto/deployment/wsgi/modwsgi/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.