【问题标题】:I don't know how to connect one of the .html files from the quiz application to the django application. (Page not found (404))我不知道如何将 .html 文件之一从测验应用程序连接到 django 应用程序。 (找不到页面 (404))
【发布时间】:2021-05-06 19:31:49
【问题描述】:

我的 (Django) basic_app 中有一个 quiz_app(位于 QuizApp 文件夹中)。到目前为止一切正常,游戏结束并且 quiz_end.html(以前的 end.html)页面没有显示。

此链接指向 quiz_game.js,它(链接)位于 quiz_game.html 文件中 - (在本例中,quiz_js 是位于 django 的静态文件夹中的文件夹)

<script src="{% static "quiz_js/quiz_game.js" %}">

这里是 end.html 文件的某种链接(请注意,end.html 很快将重命名为 quiz_end.html 文件),该链接位于 quiz_game.js 文件中 - (它是if 语句的一部分 - 如果没有问题,则游戏结束)

if (availableQuestions.length === 0 || questionCounter >= MAX_QUESTIONS) {
    localStorage.setItem("mostRecentScore", score);
    //go to the end page
    return window.location.assign("/end.html");
};

(您可以在此处查看此文件的完整代码 - https://github.com/jamesqquick/Build-A-Quiz-App-With-HTML-CSS-and-JavaScript/blob/master/Quiz%20App%20Master/game.js - 它只是称为 game.js 而不是 quiz_game.js + 您可以在此处查看测验应用程序中的所有文件 - https://github.com/jamesqquick/Build-A-Quiz-App-With-HTML-CSS-and-JavaScript/tree/master/Quiz%20App%20Master -唯一的区别是,我必须将 .css 和 .js 文件放到 Django 的静态文件夹中)

我已将 end.html 文件重命名为 quiz_end.html,因为我使用的是 Django,所以我试图将 Django 的模板标签合并到 quiz_game.js 文件中,就像这样 - (我不确定,如果我是这样做是正确的,但它是一个标准的 url 标记,在添加到 .html 文件时有效,但我不确定将其添加到 .js 文件是否是正确的方法)

getNewQuestion = () => {

  if (availableQuestions.length === 0 || questionCounter >= MAX_QUESTIONS) {
      localStorage.setItem("mostRecentScore", score);
      //go to the end page
      return window.location.assign("{% url 'quiz_end' %}");
  };

问题是,这是我第一次尝试在使用 Django 时将浏览器从 .js 文件重定向到 .html 文件,但我真的不知道该怎么做。

quiz_end.html 文件的视图和 url 模式应该没问题。他们在这里-

def quiz_end(request):
    return render(request,'basic_app/QuizApp/quiz_end.html') 

url(r'^quiz_end/$', views.quiz_end, name='quiz_end'),

我也不知道,为什么游戏结束后浏览器仍然将我重定向到 /end.html 而不是将我重定向到 /quiz_end.html。

有人可以帮帮我吗?非常感谢您。

【问题讨论】:

    标签: javascript python html django http-status-code-404


    【解决方案1】:

    我有一个类似的问题,通过将应用程序的命名空间添加到 url 并这样调用它来解决:

    {% url 'quiz_app:quiz_end' %}
    

    【讨论】:

    • 当我已经有这行 (app_name = 'basic_app') 代码时,我应该如何添加 quiz_app 的命名空间?
    • 这是核心应用的urls.py:`path('quiz_app/', include('quiz_app.urls', namespace='quiz_app')),
    • 我收到此错误:NameError: name 'path' is not defined :/
    • 添加这行代码后 - from django.urls import path - 我收到一个新错误 - ModuleNotFoundError: No module named 'quiz_app'
    • quiz_app 只是一个例子。如果您的应用程序被称为“测验”,则应将“测验”放在那里。我试图让这条路线通过'quiz'的url很明显,然后它查找名称'quiz_end'(在路径内)并从那里进入视图。最后,视图服务于模板
    猜你喜欢
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    • 2021-04-28
    • 2017-10-06
    • 2011-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多