使用引导程序和 django
Posted
技术标签:
【中文标题】使用引导程序和 django【英文标题】:Using bootstrap and django 【发布时间】:2013-04-28 22:04:09 【问题描述】:我正在尝试让引导程序在我的 django 项目中工作,并按照教程 here 但它没有用。当我在浏览器中访问我的本地项目时,它只显示一个带有 4 个蓝色链接的空白页面。不是我所期待的。在 pycharm(我的 ide)中,它告诉我我的模板中有一个未解决的对 STATIC_URL 的引用。我认为问题在于,仅将引导程序放在我的项目中并在我的设置中定义它是不够的。有什么想法吗?
对不起,我的项目基本上是这样设置的。 Main_Project/ app_1、app_2、媒体/、模板/、Main_Project/ 所以我应该把 boostrap 放在第一个 Main_Project 下还是第二个
这也是我的设置,以防万一。
STATIC_ROOT = os.path.join(SITE_ROOT, 'static_files')
# URL prefix for static files.
# Example: "http://media.lawrence.com/static/"
STATIC_URL = '/static/'
【问题讨论】:
【参考方案1】:Kevin 这里是 Python Diary 中那篇文章的作者。自从我发布该教程以来,我已经创建了在 Django 项目中启用 Bootstrap 的其他方法,包括一个方便的项目模板,可以从这里下载:
http://www.pythondiary.com/templates/bootstrap
我还在 BitBucket 上启动了一个项目,因为它有一个超级易用的 Django 引导主题应用程序,只需将其添加到您的“INSTALLED_APPS”,然后从原始引导程序网站扩展任何模板,例如 starter.html等等可供选择。当然,您也可以旋转自己的引导主题。我尝试积极更新它,并正在寻找更多建议,使其成为希望在项目中使用 Bootstrap 的开发人员的“Django goto 应用程序”,BitBucket repo 可以在这里找到:
https://bitbucket.org/kveroneau/django-bootstrap-theme
希望这对可能偶然发现此 *** 页面的其他人有所帮助。
【讨论】:
【参考方案2】:首先 settings.py 中的静态 url 应该是这样的:
STATIC_URL = '/static/'
之后你应该在文件夹里面创建一个3文件夹static:
img CSS js下载 Bootstrap 并正确放入上述文件夹中的每个文件
最后在模板中导入引导程序:
<link rel="stylesheet" type="text/css" href="STATIC_URLcss/bootstrap.min.css"/>
<link rel="stylesheet" type="text/css" href="STATIC_URLcss/bootstrap-responsive.min.css"/>
<script type="text/javascript" src="STATIC_URLjs/bootstrap.min.js"></script>
您应该将文件放在应用程序外部或应用程序内部,以使用您的静态文件个性化每个应用程序,区别在于静态文件的 url。
5.1 应用外
STATIC_URL = '/static/'
5.2 在每个应用程序内部:
STATIC_URL = '/App1/static/'
STATIC_URL = '/App2/static/'
还有 STATIC_ROOT 放
STATIC_ROOT = ''
【讨论】:
我将句子改为 STATIC_URL 以不使用 % load staticfiles % @Ngenator% static ...%
没有% load staticfiles %
将无法工作, STATIC_URL
只是静态文件应用程序在上下文中设置的变量。
只是一个问题?如果没有STATICFILES_DIR
并且没有urls.py
中的urlpatterns,这会起作用吗?据我所知,使用开发服务器提供静态文件需要一些额外的工作。
@J0HN 他在我发表评论后编辑了答案。他在没有它的情况下使用% static ... %
,检查revision。
感谢您的回复。但是关于 STATIC_URL,我需要创建这个文件夹吗?还是它已经创建了,我只是找不到它?谢谢【参考方案3】:
项目 settings.py 文件(此行是默认的,不要更改它们):
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = '/static/'
在您的应用文件夹中(带有 .html 文件的模板文件夹也应该在那里):
使用子文件夹(引导文件)创建文件夹“静态”,结构应如下所示:
在您的 html 模板文件中,像这样导入引导程序(注意 CSS 位于 head 中,JS 位于 body 部分):
<html>
<head>
<title> Your title </title>
<!-- To prepare django for loading static files -->
%load staticfiles %
<!-- And with <link> or <script> tag you actualy import bootstrap files in page -->
<link href=% static "css/bootstrap.min.css" % rel="stylesheet">
</head>
<body>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src=% static "js/bootstrap.min.js" %></script>
<p> Next your page code ............... </p>
<p> Next your page code ............... </p>
<p> Next your page code ............... </p>
</body>
【讨论】:
【参考方案4】:这对我有用,我按照文档中的内容进行操作:
https://docs.djangoproject.com/en/1.10/howto/static-files/
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'settings'
]
...
STATIC_URL = '/static/'
静态文件放在project/my_app/static/my_app/css/bootstrap.min.css
模板放在这里project/my_app/templates/my_app/base.html
% load static %
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Bootstrap Core CSS -->
<link href="% static "my_app/css/bootstrap.min.css" %" rel="stylesheet">
【讨论】:
以上是关于使用引导程序和 django的主要内容,如果未能解决你的问题,请参考以下文章
将引导程序和自定义 css 应用于 django 中的 form 元素
如何使用引导程序和 for 循环在 django 中创建电影片段?