在学习django的时候,我写了一个handler,根据一定的条件从数据库中选择信息,条件的数量可以从0到3,条件必须通过request
def get_washings(request):
washings = Washing.objects.all()
campus = request.GET.get('campus')
if campus is not None:
washings = washings.filter(campus_case = campus)
empty = request.GET.get('is_empty')
if empty is not None:
washings = washings.filter(is_empty = empty)
status = request.GET.get('status')
if status is not None:
washings = washings.filter(status = status)
return render(request, 'washing/washings.html', {'washings': washings})
对此处理程序的调用在url.py
urlpatterns = [
url(r'^washing/show/$', views.get_washings, name = 'washing'),
]
作为一个选项,记录被使用
url(r'^washing/show/<int:campus>/<int:status>/<int:is_empty>/$', views.get_washings, name = 'washing')
但我不能从浏览器调用这个处理程序,即 被叫时
http://127.0.0.1:8000/washing/?campus=1&is_empty=0&status=0/
或者
一个错误:
找不到页面 (404) 请求方法:GET 请求 URL: http: //127.0.0.1 :8000/washing/?campus=1&is_empty=0&status=0/ 使用 application.urls 中定义的 URLconf,Django 尝试了这些 URL 模式,在这个命令:
^调试/管理/ ^accounts/login/$ [name='login'] ^accounts/profile/$ ^washing/show/$ [name='washing'] ^washing/one/$ [name='one_washing']当前路径,washing/,与其中任何一个都不匹配。
您看到此错误是因为您的 Django 设置文件中有 DEBUG = True 。将其更改为 False,Django 将显示标准 404 页面
.
或将视图定义更改为
然后打开链接
/washing/show/1/1/1/
。或者更改 urls.py 中的模式第一个和第二个 url 模式都有显示
您关注的链接不再存在。
我认为结论是多余的。
带有 url 的 PS 文件通常称为 urls.py ,最好制作一个更好的格式,这样一堆类似的检查就不会弄乱Tyk方法。
UPD:我认为您自己已经发现了一个错误,请阅读表格。