1

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

我在项目中的 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:不要担心我的网址,因为我打算在完成此步骤后构建一个更大的应用程序。

4

1 回答 1

0

尝试移动url(r'^loginapi/', include('loginapi.urls')),到根 urls.py 中模式的最顶部,以确保它没有被其他东西遮蔽。

例如,考虑以下 urlpatterns:

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

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

于 2015-09-30T19:38:27.740 回答