尽管发送了正确的HttpResponse表单视图,但Django应用程序抛出404错误

时间:2015-09-30 18:12:32

标签: python django httpresponse http-response-codes django-errors

我在现有的Django项目中制作了一个Django应用程序。我想测试的是我的新建应用程序是否从我在app的views.pay中编写的视图中将正确的HttpResponse文本对象发送到我的浏览器。网址已正确配置,并已包含在项目中。此外,该项目已将我的应用添加到其已安装的应用程序中。

项目中我的urls.py有:

url(r'^loginapi/', include('loginapi.urls')),

我在应用中的urls.py包含:

  urlpatterns = patterns('',
        url(r'^$', views.authenticateRemoteUser, name = 'loginAPIUrl'),
    )

我在项目settings.py文件中安装的应用有:

INSTALLED_APPS += (
    'core',
    'people',
    'places',
    'media',
    #Just added loginapi app to test my HTTP post request
    'loginapi',
)

我的观点如下:

from django.http import HttpResponse

def authenticateRemoteUser(request):
        return HttpResponse("hello world")

其他数据::

中间件如下:

MIDDLEWARE_CLASSES = (
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
)

我在浏览器上获得的内容如下:

Page not found (404)
Request Method: GET
Request URL:    http://www.example.com/loginapi/

(无法在没有10个声誉的情况下发布图片)

注意:www.example.com用于本地使用,并已添加到我的主机中以用于我的服务器ip。所以,不是问题。

注意2:我的应用程序部署在AWS EC2中,但我不认为这是原因。

注意3:不要打扰我的网址,因为我打算在完成此步骤后构建一个更大的应用程序。

1 个答案:

答案 0 :(得分:0)

尝试将url(r'^loginapi/', include('loginapi.urls')),移动到根urls.py中模式的最顶部,以确保它不被其他内容遮挡。

例如,请考虑以下urlpatterns:

urlpatterns = [
    url(r'^', views.catch_all),
    url(r'^loginapi/', include('loginapi.urls'))
]

/loginapi/的请求将与正则表达式^'匹配,并由catch_all视图而非预期的loginapi视图处理。您可以通过将catch_all url模式移动到其他模式下来解决问题。