我的编程空间,编程开发者的网络收藏夹
学习永远不晚

diango引入静态文件

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

diango引入静态文件

web开发需要使用到css和javascript文件,才能让网页展示比较好看。下面介绍在Django框架中引入这些静态文件,来实现一个bootstrap网页。


首先,在你建立的工程的根目录中建立一个static文件夹,用来存放css,js和图片等静态文件。css和js文件已经放到对应目录了。

目录结构如下:

mysite/
├── blog
│   ├── admin.py
│   ├── apps.py
│   ├── __init__.py
│   ├── models.py
│   └── views.py
├── manage.py
├── mysite
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── static
│   ├── css
│   │   └── bootstrap.min.css
│   ├── images
│   └── js
│       ├── bootstrap.min.js
│       └── jquery-3.3.1.min.js
└── templates
    └── index.html

然后进入工程文件夹mysite,打开settings.py文件,找到最后一行,有STATIC_URL的位置,进行如下配置:

STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,"static"),
)

STATICFILES_DIRS 表示配置静态目录,Django 就能自动找到放在里面的静态文件。


基于上一篇文档,修改templates目录下的index.html,内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!--告诉IE使用最新的引擎渲染网页,chrome=1则可以激活Chrome Frame-->
 <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <!--适用于移动设备,禁止页面缩放-->
 <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- Bootstrap -->
 <script class="lazy" data-src='../static/js/jquery-3.3.1.min.js'></script>
    <link href="../static/css/bootstrap.min.css" rel="stylesheet">
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
 <script class="lazy" data-src="../static/js/bootstrap.min.js"></script>

    <title>Title</title>
    <style>
        .col-center-block {
        float: none;
 display: block;
 margin-left: auto;
 margin-right: auto;
 }

    </style>
</head>
<body>

<!--正文-->
<div class="container">
    <div class="row">
        <div class="col-md-6 col-center-block">
            <!--面板-->
            <!--panel-success显示绿色-->
 <div class="panel panel-success">
                <div class="panel-heading">
                    <h3 class="panel-title text-center">注册</h3>
                </div>
                <div class="panel-body">
                    <form class="form-horizontal" action="/userInfo/" method="post">
                        <div class="form-group">
                            <label for="inputUser1" class="col-sm-2 control-label">用户名</label>
                            <div class="col-sm-10">
                                <input type="text" name="username" class="form-control" id="inputUser1" placeholder="请输入用户名">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="inputPassword1" class="col-sm-2 control-label">密码</label>
                            <div class="col-sm-10">
                                <input type="password" name="password" class="form-control" id="inputPassword1" placeholder="请输入密码">
                            </div>
                        </div>
                        <div class="form-group">
                            <label for="inputEmail3" class="col-sm-2 control-label">邮箱</label>
                            <div class="col-sm-10">
                                <input type="email" name="email" class="form-control" id="inputEmail3" placeholder="请输入邮箱">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-sm-offset-2 col-sm-10">
                                <button type="submit" class="btn btn-success text-left">注册</button>

                            </div>
                        </div>
                    </form>


                    {#判断列表有数据的情况下#}
 {% if user_list %}
                        <hr/>
                        <h2>数据展示</h2>
                            <!--面板-->
 <div class="panel panel-default">
                                <div class="panel-heading">
                                    <h3 class="panel-title">标签</h3>
                                </div>
                                <div class="panel-body">
                                    <table class="table table-striped table-bordered table-hover table-condensed">
                                        <thead>
                                        <tr>
                                            <th>姓名</th>
                                            <th>密码</th>
                                            <th>邮箱</th>
                                        </tr>
                                        </thead>
                                        <tbody>
                                            {#使用for循环遍历列表#}
 {% for i in user_list %}
                                                <tr>
                                                    {#展示数据#}
 <td>{{i.username}}</td>
                                                    <td>{{i.password}}</td>
                                                    <td>{{i.email}}</td>
                                                </tr>
                                            {#结束for循环#}
 {% endfor %}

                                        </tbody>
                                    </table>
                                </div>
                            </div>
                    {#一定要写结束符#}
 {% endif %}

                </div>
            </div>

        </div>
    </div>
</div>

</body>
</html>

启动mysite项目,访问页面

http://127.0.0.1:8000/userInfo/

效果如下:

blob.png

点击注册按钮之后,页面下方展示数据部分

blob.png


STATIC_URL为增强可移植性,在模板中可以用:STATIC_URL来代替具体的/static/来设置资源路径。


举例:

修改settings.py文件,将STATIC_URL修改为abc

STATIC_URL = '/abc/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR,"static"),
)

将index.html的head部分的static替换为abc

<!-- Bootstrap -->
<script class="lazy" data-src='../abc/js/jquery-3.3.1.min.js'></script>
<link href="../abc/css/bootstrap.min.css" rel="stylesheet">
<!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
<script class="lazy" data-src="../abc/js/bootstrap.min.js"></script>

再次访问网页,也是正常的。


因为diango利用前缀STATIC_URL的具体内容,来映射STATICFILES_DIRS, 那么它就可以找到具体的文件。

比如前台页面的静态资源路径,一般都是写死了,可能涉及到几百个网页。网站在运营过程中,难免后台服务器,需要做迁移工作,可能和之前的存储路径不一样的。这个时候,让前端去改几百个网页,是一个很繁杂的工作。现在只需要修改STATIC_URL,就可以完美解决这个问题!!!


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

diango引入静态文件

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

diango引入静态文件

web开发需要使用到css和javascript文件,才能让网页展示比较好看。下面介绍在Django框架中引入这些静态文件,来实现一个bootstrap网页。首先,在你建立的工程的根目录中建立一个static文件夹,用来存放css,js和图
2023-01-30

Springboot中静态文件的引入方式有哪些

这篇文章给大家分享的是有关Springboot中静态文件的引入方式有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。thymeleaf 模式依赖中引入
2023-06-29

vue中如何引入html静态页面

这篇文章主要介绍了vue中如何引入html静态页面,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-01-16

vue引入静态jquery报错怎么办

vue引入静态jquery报错的解决办法:1、通过“npm install jquery --save”安装jquery依赖;2、在“vue.config.js”中配置jquery;3、通过“import $ from "jquery";”方式在页面中引入jquery即可。
2023-05-14

vue引入静态jquery报错如何解决

这篇文章主要介绍“vue引入静态jquery报错如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue引入静态jquery报错如何解决”文章能帮助大家解决问题。vue引入静态jquery报错的
2023-07-05

nodejs页面跳转静态文件

Node.js是令人兴奋的,功能强大的工具,它能够快速构建高效的应用程序。在本文中,我们将探讨如何使用Node.js来实现静态文件的页面跳转。在Web开发中,页面跳转是非常常见的操作。当用户点击按钮或链接时,我们需要将页面跳转到指定的网页。在传统的开发中,我们使用HTML页面和服务器端脚本来实现网页的跳转和渲染。但随着Web应用程序的复杂性增加,传统的开发方式已经无法满足我们的
2023-05-24

Tomcat怎么处理静态文件

Tomcat 通常会使用 DefaultServlet 来处理静态文件。DefaultServlet 是 Tomcat 自带的一个 servlet,用于处理静态资源文件,例如 HTML 文件、CSS 文件、JavaScript 文件、图片等
Tomcat怎么处理静态文件
2024-03-07

分离django中的媒体文件,静态文件

前言文章会在github中持续更新作者: knthonygithub联系我django项目中,占很大体积的是静态文件,媒体文件还有html代码,那我们该如何把它们分离出来以方便我们和服务器去管理和使用它们。static 文件static,顾
2023-01-31

springboot无法从静态上下文中引用非静态变量怎么解决

这篇文章主要介绍了springboot无法从静态上下文中引用非静态变量怎么解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇springboot无法从静态上下文中引用非静态变量怎么解决文章都会有所收获,下面我们
2023-06-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录