使用引导程序和 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 中创建电影片段?

Django 表单和引导程序 - 添加小部件有效但不完全

带有普通 Django 表单和引导程序的 Django-CKEditor

Django 1.3 的 Twitter 引导程序

Django 和引导程序,为啥我的小部件不起作用?