【发布时间】:2017-05-14 10:21:19
【问题描述】:
我正在处理这个 Django 项目。该功能运行良好。当我开始使用 Bootstrap3 进行前端工作时,我遇到了一些问题(更像是混乱)。
首先,我使用命令提示符安装了 django-bootstrap3,如下所示:
pip install django-bootstrap3
安装成功。 Bootstrap3 被下载到我电脑的这个位置 c:\python34\lib\site-packages 然后,我将它作为第三方应用程序包含在 settings.py 的我的主项目目录中的 INSTALLED_APPS 列表如下:
INSTALLED_APPS =(
--apps--
'bootstrap3',
)
同样在 settings.py 中,我像这样包含了 jQuery:
BOOTSTRAP3 = {'include_jquery': True}
我修改了我的 base.html 以包含引导元素。我有两个应用程序,users 和 mynotess(抱歉命名不当)
base.html
编辑:base.html 位于问题的底部。
由于某种原因,我加载了 localhost:8000,它仍然是普通的丑陋 HTML 格式。我在网上查了一下,发现了一些 CDN 链接,我想如果我只是使用 CDN 链接,它可能会起作用。
然后我将其包含在 base.html 中,直接从 Bootstrap 的网站复制。
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
(我在 HTML 文档的 head 部分中包含了链接,在 HTML 文档的 body 部分中包含了脚本)。
成功了! 然而,当我从我的 INSTALLED_APPS 中删除了 bootstrap3 以及加载我计算机上安装的 bootstrap3 的所有代码(例如 {% load bootstrap3 %} ,它不起作用。它回到了丑陋的 HTML 格式。同样,当我删除 CDN 链接并保留所有加载 bootstrap 的 bootstrap3 代码安装在我的计算机上时,它也回到了丑陋的 HTML 格式。
我的问题是:
应该是这样的吗?根据我目前正在为这个项目关注的一本书,我什至不必包含 CDN 链接和脚本(这本书没有提到它们根本)而且它应该可以工作.
如果不应该是这样,是不是我的代码有问题导致了这种情况?我错过了一些步骤吗?我的 bootstrap3 文件是否在正确的目录中? (我只是通过命令提示符使用 pip 下载了它,我没有将它移动到其他任何地方)
我的 Django 网站的功能运行良好。 非常感谢任何帮助、解释或建议!
编辑: base.html 如果我想显示 Bootstrap 元素,就必须是这样。
<!DOCTYPE html>
{% load bootstrap3 %}
<html lang="en">
<head>
<meta charset="utf-8"><!-- encoding characters -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- some Microsoft Edge/IE stuff -->
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- viewport -> the user's visible area of a webpage, -> this sets it to normal zoom (scale 1) and width of device -->
<title>My Notes</title
{% bootstrap_css %}
{% bootstrap_javascript %}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</head>
<body>
<!-- Static top 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"></button>
<a class="navbar-brand" href="{% url 'mynotess:index' %}">My Notes</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
{% if user.is_authenticated %}
<li><a href="{% url 'mynotess:topics' %}">My Topics</a></li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if user.is_authenticated %}
<li><a>{{user.username}}</a></li>
<li><a href="{% url 'users:logout' %}">Log Out</a></li>
{% else %}
<li><a href = "{% url 'users:login' %}">Login</a></li>
<li><a href = "{% url 'users:register' %}">Create Account</a></li>
{% endif %}
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="page-header">
{% block header %}{% endblock header %}
</div>
<div>
{% block content %}{% endblock content %}
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
如果我只删除 CDN 链接,它将无法正常工作。同样,如果我只删除模板标签,它也不会起作用。
base.html 没有模板标签(不起作用)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"><!-- encoding characters -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- some Microsoft Edge/IE stuff -->
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- viewport -> the user's visible area of a webpage, -> this sets it to normal zoom (scale 1) and width of device -->
<title>My Notes</title
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">
</head>
<body>
<!-- Static top 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"></button>
<a class="navbar-brand" href="{% url 'mynotess:index' %}">My Notes</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
{% if user.is_authenticated %}
<li><a href="{% url 'mynotess:topics' %}">My Topics</a></li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if user.is_authenticated %}
<li><a>{{user.username}}</a></li>
<li><a href="{% url 'users:logout' %}">Log Out</a></li>
{% else %}
<li><a href = "{% url 'users:login' %}">Login</a></li>
<li><a href = "{% url 'users:register' %}">Create Account</a></li>
{% endif %}
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="page-header">
{% block header %}{% endblock header %}
</div>
<div>
{% block content %}{% endblock content %}
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
</body>
</html>
base.html 没有 CDN 的链接(也不起作用)
{% load bootstrap3 %}
<html lang="en">
<head>
<meta charset="utf-8"><!-- encoding characters -->
<meta http-equiv="X-UA-Compatible" content="IE=edge"><!-- some Microsoft Edge/IE stuff -->
<meta name="viewport" content="width=device-width, initial-scale=1"><!-- viewport -> the user's visible area of a webpage, -> this sets it to normal zoom (scale 1) and width of device -->
<title>My Notes</title
{% bootstrap_css %}
{% bootstrap_javascript %}
</head>
<body>
<!-- Static top 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"></button>
<a class="navbar-brand" href="{% url 'mynotess:index' %}">My Notes</a>
</div>
<div id="navbar" class="navbar-collapse collapse">
<ul class="nav navbar-nav">
{% if user.is_authenticated %}
<li><a href="{% url 'mynotess:topics' %}">My Topics</a></li>
{% endif %}
</ul>
<ul class="nav navbar-nav navbar-right">
{% if user.is_authenticated %}
<li><a>{{user.username}}</a></li>
<li><a href="{% url 'users:logout' %}">Log Out</a></li>
{% else %}
<li><a href = "{% url 'users:login' %}">Login</a></li>
<li><a href = "{% url 'users:register' %}">Create Account</a></li>
{% endif %}
</ul>
</div>
</div>
</nav>
<div class="container">
<div class="page-header">
{% block header %}{% endblock header %}
</div>
<div>
{% block content %}{% endblock content %}
</div>
</div>
</body>
</html>
【问题讨论】:
标签: python html django twitter-bootstrap web