Django url 似乎不起作用

Posted

技术标签:

【中文标题】Django url 似乎不起作用【英文标题】:Django url not seems to be working 【发布时间】:2015-10-24 18:04:50 【问题描述】:

您好,我有一个名为 mysite 的 django 项目。 并在内部创建了一个名为 app 的应用程序。当我运行服务器时,我的 base.html 似乎正在工作。但是另一个 html 文件,一旦我单击主页(base.html)中的链接按钮,应该能够加载。我有以下看法

`def view(request):
    return render(request,"view.html", )

在我的 views.py 和 urls 中

url(r'^admin/', include(admin.site.urls)),
url(r'$', 'app.views.home', name='home'),
url(r'^view/', 'app.views.view', name='view'),
] + static(settings.STATIC_URL, document_root=settings.STATIC_URL)`

我的链接按钮是

<a href="view.html" class="btn btn-lg btn-primary">Lets take a ride.. »</a>

模板: base.html

`% load staticfiles %
#<img src="% static "my_app/myexample.jpg" %" />#
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../../favicon.ico">

    <title>Parasol.</title>

    <!-- Bootstrap core CSS -->
      <link href="%  static 'css/bootstrap.min.css' %" rel="stylesheet">
      <link href="%  static 'css/navbar-static-top.css' %" rel="stylesheet">
      <link href="%  static 'css/style.css' %" rel="stylesheet">

    <!-- Custom styles for this template -->
    <link href="navbar-static-top.css" rel="stylesheet">
    <script src="../../assets/js/ie-emulation-modes-warning.js"></script>

  </head>

  <body>

    <!-- Static navbar -->
    <nav class="navbar navbar-default navbar-static-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
          </button>
          <a class="navbar-brand" href="#">Parasol.</a>
        </div>
        <div id="navbar" class="navbar-collapse collapse">
          <ul class="nav navbar-nav">
            <li class="active"><a href="#">Home</a></li>
            <li><a href="#about">About</a></li>
            <li><a href="#contact">Contact</a></li>
            <li class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Photos <span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="#">One more separated link</a></li>
              </ul>
            </li>
          </ul>
          <ul class="nav navbar-nav navbar-right">
            <li><a href="../navbar/">Timeline</a></li>
            <li class="active"><a href="./">Quotes<span class="sr-only">(current)</span></a></li>
            <li><a href="../navbar-fixed-top/">Friends</a></li>
          </ul>
        </div><!--/.nav-collapse -->
      </div>
    </nav>


    <div class="container">

      <!-- Main component for a primary marketing message or call to action -->
      <div class="jumbotron">
        <h1>Blah Blah</h1>
        <p>
<a href="% url 'view' %" class="btn btn-lg btn-primary">Let's go</a>
        </p>
      </div>

    </div> <!-- /container -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
    <script src="../../dist/js/bootstrap.min.js"></script>
    <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
    <script src="../../assets/js/ie10-viewport-bug-workaround.js"></script>
  </body>
</html>`

查看.html

`% load staticfiles %
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Chameleon Guys</title>
</head>
<body>
Its just for you dudes!!
</body>
</html>`

即使我的 webbrowser 上的 url 显示 view.html 页面也没有加载。请帮助我。在此先感谢。

【问题讨论】:

请更新您的代码 【参考方案1】:

在 href 值中放置来自 urls.py 的 url。

<a href="/view/" class="btn btn-lg btn-primary">Lets take a ride.. &raquo;</a>

【讨论】:

但仍然没有变化。网址显示 http://127.0.0.1:8000/view/ 但页面仍然是我的 base.html 显示您从中扩展基本模板的页面模板,您的按钮所在的位置。 在 view.htlm 中的代码之前和之后,您的代码中是否存在拼写错误?以及调用/view/ url时显示什么错误?【参考方案2】:

您正在使用命名网址,因此只需使用该功能:

<a href="% url 'view' %" class="btn btn-lg btn-primary">Let's go</a>

详情请见documentation!

【讨论】:

但结果还是一样【参考方案3】:

创建模板目录。

-proj
    -app
        -templates
                  -view.html

尝试在你的 settings.py 中添加路径。

TEMPLATE_DIRS = (
    BASE_DIR + '/app/templates',
)

【讨论】:

谢谢乔纳德,让我试试

以上是关于Django url 似乎不起作用的主要内容,如果未能解决你的问题,请参考以下文章

% url % 在 Django 中不起作用

Django 频道 - 自定义路由似乎不起作用

Django:将字符串参数传递给基于类的视图不起作用

django - url标签不起作用

Django URL 模式不起作用

CORS 在 Django 中不起作用,但设置似乎正确