2023 Django静态文件配置指南:开发与部署详解

创始人
2024-12-23 14:42:07
0 次浏览
0 评论

在Django中怎么设置静态文件(2023年最新整理)

简介:很多朋友问了关于如何在Django中配置静态文件的问题,本文中CTO的笔记将为您提供详细的解答,供您参考。
我们来看看吧!

Django静态文件和动态文件

更改设置:

MEDIA_ROOT和MEDIA_URL表示用户上传的文件的存储位置。
可以理解为存放变量文件的文件夹。

这两个参数有什么用呢?

在Django的FileField和ImageField等Model类中,upload_to参数是可选的。
当upload_to设置对应的地址时,例如:

文件上传后,会自动保存到:os.path.join(MEDIA_ROOT,upload_to),本例为:/static/uploads/test_pictures

MEDIA_URL代表用户可以访问这些上传的文件资源的URL。

本例中,本地地址为:,MEDIA_URL设置为/static/uploads/

然后您可以通过:文件名访问上传的图片或其他文件。

STATIC_ROOT和STATIC_URL是网站上静态片、CSS、JS等文件的存储地址。
可以理解为存放网站运行时不会改变的文件的文件夹(即不会被删除或添加)

STATIC_URL,类似于MEDIA_URL,当你将STATIC_URL设置为“/;static/",pass:文件名可用于访问链接的静态文件。

STATIC_ROOT是一个单独的文件夹。
这是Django的开发模式和部署模式最大的区别。

通常在开发模式下,我们可以在自己所在的项目下创建对应的应用程序,然后在每个应用程序下创建对应的静态文件夹。
在开发模式(Debug=True)下,Django会自动为我们找到这些静态文件(每个应用程序)并将它们显示在网站上。
然而,在部署模式下,Django认为让Web服务器执行这些任务会更高效。

因此,在部署时,我们需要运行:

该命令会将各个应用程序的static目录下的文件复制到STATIC_ROOT文件夹中。

如果在部署模式下访问相关网站,即:(Debug=False),如文件名,您将无法访问Django下任何应用程序中的静态文件夹,但只能访问STATIC_ROOT文件夹中指定的静态文件夹。

为了在部署模式下正确使用它,我们还需要在urls.py中添加以下内容:

这相当于告诉Django,当遇到以“static”开头的链接时,如何处理。

理解了上面的内容后,我们就让图像出现在前景中。

编写showview函数,提供动态图片:

然后编写show.html:

Django中各个静态文件配置详细说明

2.STATIC_ROOT:这是配置静态文件存储目录,另一个作用是在运行静态件收集命令时指定静态文件最终收集和存储的位置(库兰蒂将在后面讨论)。
debug=false时的效果(生产环境)(稍后会讲为什么)。

4.STATICFILES_DIRS:在当前开发的项目中,如果我们的静态文件存放在一个或多个目录下,我们可以定义一个列表来存放静态文件,配置为Django默认没有这个配置。
请自行定义当项目下有一个或多个静态资源目录时,这个定义非常方便。
注意,这个配置只有在debug=true时才生效(开发环境)

9.collectstatic:部署项目时,我们我们还需要编译静态文件,显然工作量会很大,而且部署后,debug要改为debug=false,如果不编译静态文件,Django自带的CSS,如管理员支持,将无法加载。
因此,在项目部署之前,此操作是必要的。

xangodjango.contrib.staticfiles提供了一个收集静态文件的命令:pythonmanage.pycollectstatic运行该命令后,静态文件将被收集到配置的STATIC_ROOT中


django1.9中如何设置静态文件

我想把一个以前的asp.net网站移植到django上发现django好像对静态资源支持不太好,不能直接根据相对路径查询。
我需要做一些配置,我找到了很多解决方案,总结如下:

1静态Django资源配置。
!!记住!!!1.3之前的配置和1.3之后的配置不一样!!!以下仅适用于Django1.9;settings.py中的

2个已安装的

应用程序

应包含“django.contrib.staticfiles”。

3。
settings.py中的STATIC_URL为app目录下静态文件所在文件夹的相对路径,默认为/static/,可自定义

{%

正在加载

静态

%}

img

src="{%

static

"my_app/myexample.jpg"

%}"

alt="我的图片

"/

导入js、img等静态文件后出错:

文件

"D:\Python27\lib\mimetypes.py",

249,

enum_types

ctype

=

ctype.encode(default_encoding)

#

om它

3.x!

UnicodeDecodeError:

'ascii'

编解码器

无法解码

字节

0xb0

位置

1:

顺序

不在

排名

排名(128)

[2015年12月27日

15:26:32]

“获取

/static/assets/img/nextPage_small_grey.jpg

HTTP/1.1"

500

59

找到mimetypes.py密钥错误文件,百度了一会,找到了解决办法:Python安装目录下的lib/site-内容包中添加一个sitecustomize.py文件

import

sys

sys.setdefaultencoding("cp1251")

我设置的编码格式是utf-8,不是我知道其他格式是否可行。
重启并运行成功。

如何在Django中使用静态文件

建议使用新版本的Django进行开发可以肯定的是,Django1.4及以上版本应该支持以下设置

注意:版本4应添加到project/urls.py的底部:

fromdjango.contrib.staticfiles.urlsimportstaticfiles_urlpatternsurlpatterns+=staticfiles_urlpatterns()

Django1.5-Django1.8不需要添加上述代码。

Settings.py示例代码及相关静态文件说明:

#Staticfiles(CSS,JavaScript,Images)

STATIC_URL='/static/'#When运行pythonmanage.pycollectstatic时,#STATIC_ROOT文件夹用于收集STATICFILES_DIRS中所有文件夹中的所有文件,并将静态文件复制到每个应用程序中#将这些文件放在一起,以便用apache等部署时更方便。
STATIC_ROOT=os.path.join(BASE_DIR,'collected_static')#其他存放静态文件的文件夹,可用于存放项目中常见的静态文件,其中不能包含STATIC_ROOT#如果不想使用STATICFILES_DIRS,则可以将它们省略并将它们放在应用程序的st中。
STATICFILES_DIRS=(os.path.join(BASE_DIR,"common_static"),'/path/to/others/static/',#不使用时可以删除此行)#这是默认设置,默认情况下,Django会在STATICFILES_DIRS文件夹和每个应用程序下的静态文件夹中搜索文件ATICFILES_FINDERS=("django.contrib.staticfiles.finders.FileSystemFinder","django.contrib.staticfiles.finders.AppDirectoriesFinder")

静态文件放在对应应用程序下的static文件夹中或者STATICFILES_DIRS中文件夹。

当DEBUG=True时,Django可以自动查找位于其中的静态文件。
(Django使用STATICFILES_FINDERS中的“generic”在找到匹配时停止。
搜索过程类似于Python中使用importxxx时查找包xxx的过程)。

dj18static示例项目,在app应用程序下有一个static,里面有一个zqxt.png图像:

dj18static├──blog│├──__init__.py│├──py│├──migrations│──__init__.py│├──models.py├──static#当你在blog下应用static时,会发现这个文件为默认│└──[zqxt.png]│├──tests.py│││└──views.py├──common_static#添加到文件夹STATICFILES_DIRS│└──js│└──[jquery.js]│├──dj18static│├──__init__.py│├──settings.py│├──urls.py│└──wsgi.py└──manage.py

当DEBUG=True时开放给设置.py。
开发服务器pythonmanage.pyrunserver,直接去/static/zqxt.png找到这个静态文件。

你还可以在settings.py中指定所有应用程序共用的静态文件,例如jquery.js等

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

将jquery.js放在common_static/js/下,这样就可以在/static/js/jquery.js中使用它!

如何在Django前端设置静态文件路径

设置路径变量

APP_PATH=os.path.dirname(os.path.dirname(__file__))

#

绝对

方式

解除

静态

文件

必须

收集

收集


#

不要

放入

任何东西

在此

解剖

自身;

保存

文件您的

静态

#

应用程序的

“静态/"

子目录

位于

STATICFILES_DIRS。

#

注意修改STATIC_ROOT变量

STATIC_ROOT

=

os.path.join(APP_PATH,'static').replace('\\','/')

#

URL

前缀

静态

文件。

示例:

ample.com/static/",

"h

ic.example.com/"

STATIC_URL

=

'/static/'

#

当然还有变量STATICFILES_DIRS

STATICFILES_DIRS

=

(

#

字符串

放在这里,

就像

“/home/html/static”

“C:/www/django/static”。

#

始终

使用

前面

斜杠es,

甚至

Windows上。

#

不要

忘记

使用

路径

绝对,

相对

路径。

os.path.join(APP_PATH,'mobile_oa_server/static').replace('\\','/'),

)

结论:以上是CTO负责人整理的笔记是关于如何在Django中设置静态文件的,不要忘记搜索这个页面。

惊艳:近百种数据可视化工具效果展示,总有一款适合你!

简介:俗话说“巧妇难为无米之炊”。
在数据时代,没有好的数据可视化分析工具;只用一个团队我们能做什么?商场如战场,信息是武器。
亚马逊正在利用大数据向客户推荐产品信息,阿里巴巴正在利用大数据打造小微金融服务集团,而谷歌则打算利用大数据接管世界……不知不觉中。
数据已经成为我们不可或缺的工具。
活着。
本文收集了各平台、各行业的数据可视化分析工具,让您不仅大饱眼福,而且事半功倍。

全新免费大数据可视化分析工具;操作方便;支持多种数据源;总结与分析;数据估算;聚类分析;情境分析;数据整合;决策树;地图组合图等功能。

ChartingFonts结合了符号字体和字体来创建漂亮的矢量图标(将符号转换为字体)。

Gephi是一个数据社交图。
作为可视化分析的工具,它不仅可以处理大型数据集;Gephi精力充沛;用于构建分层数据表的可视化网络探索平台。

您可以使用CartoDB,这是这方面的最佳选择。

GoogleChart提供了一种全面的数据可视化方法,提供了多种现成的图标类型,从简单的折线图到复杂的分层树形图。
它还具有内置动画和用户交互。

D3(DataDrivenDocuments)是另一个支持SVG渲染的JavaScript库。
然而,D3是Voronoi图;树木的图片它可以提供比线性图和条形图复杂得多的图表样式,例如饼图和词云。

Crossfilter是一个图形用户界面应用程序,可与表格进行交互并调整表格中的输入范围。
其他相关表中的数据也会发生变化

Raphael就是这样。
一个用于创建图表和图形的JavaScript库,与其他库最大的区别是输出格式仅限于SVG和VML。

R语言主要用于统计分析和绘图。
语言和操作环境。
虽然R主要用于开发统计分析或统计软件。
它还用于度量计算。
其分析速度可与美国GNUOctave甚至商业软件MATLAB相媲美。

如果您需要创建信息图表而不是可视化数据。
Visual.ly是最受欢迎的选项之一。

Weka可以对大量数据进行分类,Weka不仅是数据分析的强大工具,而且还可以创建一些简单的图表。

NodeBox是一个在OSX上创建二维图形和可视化的应用程序,类似于运行Python程序,但没有运行它们的交互功能。

处理是操纵数据的符号。
您需要编写一些简单的代码并将其编译为Java。
处理几乎适用于所有平台。

Leaflet是一个开源JavaScript库,用于开发适合移动设备的交互式地图。

Openlayers可能是所有图像库中最值得信赖的。
虽然文档注释已经完成,虽然学习曲线相当陡峭对于特定任务,Openlayers可以提供一些其他映射库所没有的特殊工具。

PolyMaps是一个主要面向数据可视化用户的地图库。
PolyMaps具有类似于CSS样式表的地图样式。

Timeline是一个时间表;用户可以清楚地看到做了什么以及何时做了。

jsDraw2DX使用线条,矩形,多边形,椭圆形,一个标准的JavaScript库,用于创建任何类型的SVG交互式图形,包括弧线等。

iCharts提供了一个托管决方案,用于创建和呈现有吸引力的图表。
有多种类型的图表可供选择,每种类型都可以完全自定义以匹配您网站的主题。
iCharts具有互动元素、GoogleDocs、可以从Excel表单和其他来源提取数据。

ModestMaps是一个轻量级的、可扩展的一个免费的可定制的地图显示类库,这个类库可以帮助开发者自己的项目可以与地图进行交互。

ManyEyes创建用户上传的图形数据;用于共享和讨论的网络应用程序。

任意图表灵活,基于Flash/JavaScript(HTML5)跨浏览器和跨平台的图表解决方案。
除了图表功能之外;它有一个付费交互图表和指标。

Kartograph不需要像GoogleMaps这样的地图提供商。
它包括两个库,将空间数据开放格式Python库和带有矢量投影的postGIS相结合,以构建交互式地图。
制作这两个SVG和JavaScript库,并将这些SVG数据转换为交互式地图。

Sigma.js是一个开源轻量级库,用于显示交互式静态和动态图表。

经常使用开源软件的朋友应该已经熟悉ECharts,以及去年春节期间发布的百度大数据产品和百度迁移。
百度思南大家应该都知道最近央视像百度这样的大计划。
大数据预测等该产品数据的可视化是通过ECcharts实现的。

ZohoReports旨在满足不同用户的各种个性化需求;支持SQL查询;提供了许多函数来帮助解决四类桌面等问题。

QuantumGIS(QDIS)可视化数据;管理;提供印刷地图的编辑、分析和制作便于使用是一个开源GIS客户端程序。

TableauPublic是一款桌面可视化工具,允许用户创建自己的数据并将交互式数据可视化发布到网页。

Paper.js是一个开源的矢量图叙述框架,运行在HTML5Canvas上,对于初学者来说很容易学习。

DundasChart是业界领先的.NET图表控件,于2009年被Microsoft收购,并将Chart产品的部分功能集成到VisualStudio中。

TimeFlowAnalyticalTimeline是一个时态数据的可视化工具,它现在支持以下不同的呈现方式,以便您可以发现其中的错误:日历条形图;桌子。

Gantti是一个开源PHP类,可帮助用户动态生成Gantti图表。
甘蒂,通过纯HTML-CSS3实现,您无需使用JavaScript来创建表格。
图表的默认输出很漂亮;但是,用户可以自定义输出的样式(SASS样式表)。

SmoothieCharts是一个非常小的动态数据流图电路。
通过推送webSocket公开实时数据流。
SmoothieCharts仅支持Chrome和Safari浏览器,非常适合流式传输打印文本或饼图。

浮动是一个优秀的线框库,支持所有支持Canvas的浏览器(目前主要浏览器如Firefox、IE、Chrome等)。

PizzaPieCharts是一个基于AdobeSnapSVG框架的响应式饼图,它使用HTML标签和CSS来替代JavaScript对象,从而更容易集成各种先进技术。

FusionChartsSuitXT是一个跨浏览器的JavaScript图表组件,为您提供愉快的JavaScript图表体验。
它支持90多种图表类型和3D、各种测量;工具提示;矿业它是最完整的网格解决方案,包括缩放、滚动等。
它附带完整的文档和现成的演示,可帮助您快速创建图像。

Protovis是一个可视化JavaScript表格生成器。

Arbor.Js效率很高,强大的布局算法;提供抽象表组织和过滤器更新处理。

Highchart.js是一个纯粹用JavaScript编写的图表库,它提供了一种简单的方法来添加交互式图表来说明您的网站或Web应用程序。
目前支持折线图和样条函数图。

Circos原生于基因组序列数据它已经被应用于很多领域,主要是可视化;例如:影视作品中的人物关系分析;物流公司订单来源及流向分析;ETC。
您可以尝试使用Circos来可视化任何数据类型的大多数关系。

NodeXLDE的主要功能是社交网络建模。

BirdEye隶属于DecearativeVisualAnalytics,该团队致力于促进广泛的开源数据可视化的设计和开发,并为Adob​​eFlex构建可视化分析库。
该功能主要基于叙述性数据库,允许用户构建多数据可视化界面进行分析。
信息。

VisualizeFree是一款基于InetScoft开发的可视化软件的免费可视化分析软件,一款高性能的商业后台游戏,它可以过滤大量数据并查看其趋势或使用简单的位置和方法对其进行切割。
数据或微观数据。

OpenStreetMap是由像您这样的人创建的世界地图,并在开放许可下免费提供。

OpenHeatMap简单易用用户可以上传数据;它可用于创建地图和交换信息。
它可以将数据(如谷歌电子表格)转换为交互式地图应用程序并在线共享。

GeoCommons使没有传统地图经验的用户能够构建丰富的交互式可视化应用程序来解决问题。
您可以在地图上可视化GeoCommons存储的50,000多个真实社交数据或开源数据;创建交互式视觉分析作品并将作品发布在网站上,您可以将它们嵌入博客或在社交网络上分享。

热门文章
1
C语言字符串常量解析:区别、用途及存储方... 什么是字符串常量字符串常量是C语言中的一种数据类型,它是由一对双引号括起来的字符...

2
C语言printf函数:格式字符串与输出... printf函数中的格式与输出项有什么关系?在C语言中,printf函数中的格式...

3
Excel技巧:计算字符串起始位置与合并... 如何计算字符串在特定文本中的起始位置,怎么计算字符串在特定文本中的起始位置您可以...

4
Python发音全解:掌握正确的发音方法... python怎么读我的很多学习编程的朋友可能都知道Python这个词,但是他们中...

5
字符与字符串:编程中的基础文本类型解析 字符串什么意思字符串是由数字、字母和下划线组成的字符串,表示为s=“a1a2…a...

6
Python编程语言:多领域应用与开发优... Python的作用是什么?Python是一种跨平台计算机编程语言,是ABC语言的...

7
深度解析:C语言编程特点与应用领域 什么叫c语言C语言是一种编程语言。C编程语言应用广泛,具有以下特点和特点:1.语...

8
Java全解析:跨平台编程语言的魅力与多... java是什么Java是一种功能强大的编程语言,被称为“一次编写,随处运行”模型...

9
盘点15大免费编程自学网站,助力你的编程... 免费编程自学网站推荐15个免费编程自学网站在当今的数字时代,学习编程已经成为很多...

10
C语言冒泡排序教程:实现10个数的升序和... C语言冒泡法排序:任意输入十个数排序(从小到大;从大到小)#include&qu...