在 Django 中添加路径以创建更多视图

Posted

技术标签:

【中文标题】在 Django 中添加路径以创建更多视图【英文标题】:Adding paths in Django to create more views 【发布时间】:2018-07-04 17:41:45 【问题描述】:

我正在关注 Django 网站上的 tutorial。我尝试复制这个:

我的代码如下:

views.py

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.shortcuts import render

# Create your views here.
from django.http import HttpResponse


def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

def detail(request, film_id):
    return HttpResponse("You're looking at film %s." % film_id)

def results(request, film_id):
    response = "You're looking at the results of film %s."
    return HttpResponse(response % question_id)

def vote(request, film_id):
    return HttpResponse("You're commenting on film %s." % film_id)

电影/urls.py

from django.conf.urls import url
from django.urls import path
from . import views

urlpatterns = [
    # url(r'^$', views.index, name='index'),
    # ex: /polls/
    path('', views.index, name='index'),
    # ex: /films/5/
    path('<int:film_id>/', views.detail, name='detail'),
    # ex: /films/5/results/
    path('<int:film_id>/results/', views.results, name='results'),
    # ex: /films/5/vote/
    path('<int:film_id>/vote/', views.vote, name='vote'),
]

这样我得到了 ERR_CONNECTION_REFUSED。如果我注释掉所有路径,只留下索引 url,并且注释掉 from django.urls import path 一个页面显示,但这是我在尝试添加更多视图之前所处的位置。

【问题讨论】:

您是使用DEBUG = True 还是DEBUG = False 运行服务器?您可以在settings.py 中查看。 在 settings.py 中当前显示 DEBUG = True 该错误与路径无关;如果这些错误,您将收到 404 错误。在这种情况下,听起来您只是没有运行服务器。 继丹尼尔所说的,你确定服务器正在运行吗?你如何开始它?它应该类似于python manage.py runserver 你应该确保使用你实际运行的Django版本的教程。 【参考方案1】:

您指的是较新 Django 版本的文档,因为旧版本中不存在 path()。您可以通过点击右下角的Documentation version 按钮here 来选择文档版本。

【讨论】:

以上是关于在 Django 中添加路径以创建更多视图的主要内容,如果未能解决你的问题,请参考以下文章

Django - 使用 DetailView 创建视图

向复杂的 Django 视图添加值

难以将 slug 添加到 Django 中的通用详细信息视图

Python Django:在视图中向对象添加属性还是制作数据字典更好?

如何删除视图和更新约束?

Django orm关系表的创建 路由层以及视图层