我在现有的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:不要打扰我的网址,因为我打算在完成此步骤后构建一个更大的应用程序。
答案 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模式移动到其他模式下来解决问题。