首页 > 编程语言 >编写你的第一个 Django 应用程序,第6部分

编写你的第一个 Django 应用程序,第6部分

时间:2023-04-20 11:55:07浏览次数:53  
标签:文件 静态 polls 应用程序 Django static 编写

本教程从教程 5 停止的地方开始。我们已经构建了一个经过测试的网络投票应用程序,现在我们将添加一个样式表和一个图像。

除了服务器生成的 HTML 之外,Web 应用程序通常需要提供呈现完整网页所需的其他文件(例如图像、JavaScript 或 CSS)。在 Django 中,我们将这些文件称为“静态文件”。

对于小型项目,这没什么大不了的,因为您可以将静态文件保存在Web服务器可以找到的地方。但是,在较大的项目中(尤其是由多个应用程序组成的项目),处理每个应用程序提供的多组静态文件开始变得棘手。

这就是 django.contrib.staticfiles 的用途:它将每个应用程序(以及您指定的任何其他位置)的静态文件收集到一个可以在生产中轻松提供的位置。

 

一、自定义应用的外观和感觉

首先,在 polls 目录中创建一个名为 static 的目录。Django 将在那里查找静态文件,类似于 Django 在 polls/templates/ 中查找模板的方式。

Django 的 STATICFILES_FINDERS 设置包含一个发现者列表,这些查找器知道如何从各种来源发现静态文件。

默认值之一是 AppDirectoriesFinder ,它在每个 INSTALLED_APPS 中查找一个“静态”子目录,就像我们刚刚创建的 polls 中的子目录一样。管理站点对其静态文件使用相同的目录结构。

在您刚刚创建的 static 目录中,创建另一个名为 polls 的目录,并在该目录中创建一个名为 style.css 的文件。

换句话说,您的样式表应该在 polls/static/polls/style.css 。

由于 AppDirectoriesFinder 静态文件查找器的工作方式,您可以在 Django 中将此静态文件称为 polls/style.css ,类似于您引用模板路径的方式。

将以下代码放入该样式表 ( polls/static/polls/style.css ):

li a {
    color: red;
}

接下来,在 polls/templates/polls/index.html 的顶部添加以下内容:

{% load static %}

<link rel="stylesheet" href="{% static 'polls/style.css' %}">


{% static %} 模板标签生成静态文件的绝对 URL。

这就是您需要为开发所做的一切。

启动服务器(如果它已经在运行,则重新启动它):

$ python manage.py runserver

重新加载 http://localhost:8000/polls/ ,你应该看到问题链接是绿色的(Django风格!),这意味着你的样式表已正确加载。

二、添加背景图像

接下来,我们将为图像创建一个子目录。在 polls/static/polls/ 目录中创建一个 images 子目录。

在此目录中,添加要用作背景的任何图像文件。出于本教程的目的,我们使用一个名为 background.png 的文件,

该文件将具有完整路径 polls/static/polls/images/background.png 。

然后,在样式表中添加对图像的引用 ( polls/static/polls/style.css ):

body {
    background: white url("images/background.png") no-repeat;
}

li a {
    color: red;
}

重新加载 http://localhost:8000/polls/ ,您应该会看到屏幕左上角加载的背景。

 

这些是基础知识。有关框架中包含的设置和其他位的更多详细信息,请参阅静态文件操作方法和静态文件参考。

部署静态文件讨论了如何在真实服务器上使用静态文件。

当你熟悉静态文件时,请阅读本教程的第 7 部分,了解如何自定义 Django 自动生成的管理站点。

-----------------------------------end-------------------------------------

 

标签:文件,静态,polls,应用程序,Django,static,编写
From: https://www.cnblogs.com/xh2023/p/17336285.html

相关文章

  • windows server 的日志手动筛选xml如何学习编写
    如何编写WindowsServer的日志筛选器,你需要先了解以下概念:1、WindowsEventLog:WindowsEventLog是WindowsServer操作系统提供的一种记录系统事件的机制,它可以记录操作系统、应用程序、安全、系统和其他类型的事件。2、EventViewer:EventViewer是Windows操作系统提供......
  • 编写你的第一个 Django 应用程序,第5部分
    本教程从教程4停止的地方开始。我们已经构建了一个网络投票应用程序,现在我们将为其创建一些自动化测试。一、自动化测试简介1.什么是自动化测试?测试是检查代码操作的例程。测试在不同级别运行。一些测试可能适用于微小的细节(特定的模型方法是否按预期返回值?),而其他测试则检查......
  • Qt编写推流综合应用示例(文件推流/桌面推流/本地摄像头/网络摄像头/转发推流/视频分发)
    一、功能特点1.1文件推流指定网卡和监听端口,接收网络请求推送音视频等各种文件。实时统计显示每个文件对应的访问数量、总访问数量、不同IP地址访问数量。可指定多种模式,0-直接播放、1-下载播放。实时打印显示各种收发请求和应答数据。每个文件对应MD5加密的唯一标识符,用......
  • Django笔记九之model查询filter、exclude、annotate、order_by
    本文首发于公众号:Hunter后端原文链接:Django笔记九之model查询filter、exclude、annotate、order_by在接下来四五篇笔记中,将介绍model查询方法的各个细节,为我们的查询操作提供各种便利。本篇笔记将介绍惰性查找、filter、exclude、annotate等方法,目录如下:惰性查找filtere......
  • #yyds干货盘点#详解Django基础
    一:创建项目使用django-admin命令构建项目django-adminstartprojectHelloWorld如上使用django构建了一个HelloWorld项目二:项目结构我们可以看到HelloWorld项目结构如下|--HelloWorld||--__init__.py||--settings.py||--urls.py|`--wsgi.py`--manage.p......
  • python编写CDN刷新脚本
    脚本刷新根目录[root@jenkinscdn]#catdns_flush.py#!/usr/bin/python3fromaliyunsdkcore.clientimportAcsClientfromaliyunsdkcdn.request.v20180510.RefreshObjectCachesRequestimportRefreshObjectCachesRequestimportsysiflen(sys.argv)<2:print(�......
  • cls编写常用内容
    因为师兄想让我毕设用latex写,但是因为db大学实在是不给力,github上只能搜出来俩旧的版本还对不上现在的,所以只能自食其力学习一下了cls。。参考:【LaTex】cls文件编写和使用入门LaTeX中自定义命令renewcommand、newcommand与providecommand的区别和使用方法重要的文件格式:.tex......
  • 第八篇——通达信指标公式编写常用函数(四)——EVERY、COUNT(从零起步编写通达信指标公式
    内容提要:本文主要介绍了编写通达信指标公式会用到的EVERY函数、COUNT函数以及函数的应用举例。 一、函数简介1、EVERY函数 含义:EVERY英文翻译成中文是“每个”的意思,在通达信编程语言中,EVERY函数的含义是“一直存在”。使用用法:EVERY(X,N),表示N周期内一直存在X......
  • 第五篇——通达信指标公式编写常用函数(一)——REF、MA、EMA、CROSS(从零起步编写通达信
    内容提要:本文主要介绍了编写通达信指标公式常用的函数REF、MA、EMA、CROSS以及这些函数的综合运用举例。 通达信的函数非常多,想全部熟练掌握,几乎是不可能的,而且没有必要,毕竟很多函数很少用到。 编写通达信指标公式常用的函数大概也就三四十个,对于这些函数,建议认真学习......
  • 第六篇——通达信指标公式编写常用函数(二)——HHV、LLV(从零起步编写通达信指标公式系列
    内容提要:本文主要介绍了编写通达信指标公式需要用到的HHV函数、LLV函数以及函数的应用举例,并结合前面讲过的函数进行综合运用。 一、HHV、LLV函数简介1、HHV函数 含义:求最高值使用方法:HHV(X,N),表示N个周期内X的最高值举例:HH:HHV(H,60);表示60个周期内最高价的......