Django 语法错误

如何解决Django 语法错误

目前正在进行 PythonCrashCourse2ndEd 的练习。 (第 18 章,例 8),我收到了 SyntaxError: Invalid Syntax on urls.py。 (第 13 行 path('pizza/',views.index,name='pizza),我尝试将文件直接导入到 shell,它给了我同样的错误

urls.py

"""Defines URL patterns for pizzas"""
from django.urls import path

from . import views

app_name = 'pizzas'

urlpatterns = [
    #Home page
    path('',name='index')

    #Page that shows all the pizzas.
    path('pizza/',pizzas.index,name='pizza')
    ]

views.py

from django.shortcuts import render
from .models import Pizza

def index(request):
    """The home page for pizzas."""
    return render(request,'pizzas/index.html')

def pizzas(request):
    """Show all the pizzas"""
    pizzas = Pizza.objects.all()
    context = {'pizzas': pizzas}
    return render(request,'pizzas/pizzas.html',context)

pizzas.html

<!--Inherits from base.html-->
{% extends "pizzas/base.html" %}

{% block content %}

  <p>Pizzas</p>

  <ul>
    {% for pizza in pizzas %}
      <li>{{ pizza }}</li>
    {% empty %}
      <li>No pizzas have been added yet.</li>
    {% endfor %}
  </ul>

{% endblock content %}

错误

>>> import pizzas.urls
Traceback (most recent call last):
  File "<console>",line 1,in <module>
  File "C:\Users\heyale\OneDrive\Desktop\pizzeria\pizzas\urls.py",line 13
    path('pizza/',name='pizza')

解决方法

您在第一个路径之后遗漏了逗号,并且在 urlpatterns 中遗漏了右括号“]”。应该是:

urlpatterns = [
    #Home page
    path('',views.index,name='index'),#Page that shows all the pizzas.
    path('pizza/',name='pizza')
]
,

我想知道您是否也注意到 , 列表中缺少的不仅仅是 urlpatterns。但您也一直在尝试使用不适合您的披萨路径 'pizza/' 的视图。

你拥有的是:

urlpatterns = [
    #Home page
    path('',name='index')

    #Page that shows all the pizzas.
    path('pizza/',pizzas.index,name='pizza')
]

应该是什么:

urlpatterns = [
    #Home page
    path('',# comma added here
    
    #Page that shows all the pizzas.
    path('pizza/',views.pazzas,name='pizza') # changed pizzas.index to views.pazzas
]
,

urlpatterns 是一个数组,所以你必须用逗号分隔路径元素:

urlpatterns = [
    #Home page
    path('',path('pizza/',name='pizza')
]

要获取 django shell 中的所有 URL 模式,请输入:

import urls
def show_urls(urllist,depth=0):
    for entry in urllist:
        print("  " * depth,entry.regex.pattern)
        if hasattr(entry,'url_patterns'):
            show_urls(entry.url_patterns,depth + 1)
show_urls(urls.urlpatterns)
,

在 urls.py 中,您为 index 和pizza 设置了相同的路径。您正在为比萨饼路由 (def index) 函数。

你应该这样做,它会帮助你

from django.urls import path

from . import views

app_name = 'pizzas'

urlpatterns = [
    #Home page
    path('',views.pizza,name='pizza')
]

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?