django静态页面储存在哪里(2023年最新分享)

如题所述

第1个回答  2024-09-04

导读:本篇文章首席CTO笔记来给大家介绍有关django静态页面储存在哪里的相关内容,希望对大家有所帮助,一起来看看吧。

Django中静态文件之各个配置详解

2.STATIC_ROOT:这个是配置静态文件存放目录,另外一个作用就是运行收集静态文件的命令(关于命令的部分后面会讲)时,最终静态文件收集存放的位置,注意,这个配置只会在debug=false时生效(生产环境)(至于为什么之后会讲)。

4.STATICFILES_DIRS:在实际项目开发中,如果我们的静态文件存放在一个或多个目录时,可以定义一个列表,用于存储静态文件,django默认配置并没有这个配置,如果需要,请自己定义,当项目下存在一个或多个静态资源的目录时,非常适合这样定义。注意,这个配置只在debug=true时生效(开发环境)

8.templates:定义HTML模板文件存放目录,如果你用的是pycharm的IDE的话,在创建项目时,可以根据配置自动创建一个templates目录,pycham会自动帮我们配置,如果没有配置,就需要手动创建,当然,你也可以选择自定义该目录

9.collectstatic:在项目部署时,我们还要进行静态文件的收集,如果手动收集静态文件的话,工程量无疑很大,而且部署后,debug肯定要改为debug=false,这时如果不进行静态文件的收集的话,django自带的部分,如admin后台就会出现CSS无法加载的问题,因此,项目部署前,这个操作是是必须的。

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

Django静态文件与动态文件

编辑settings:

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/"时候,通过:文件名就可以访问相关的静态文件了。

STATIC_ROOT是一个比较特殊的文件夹。这是Django的开发模式和部署模式区别最大的地方。

通常我们在开发模式下,可以在我们所在的project下建立相应的app,然后每个app下都建立相应的static文件夹。在开发模式下(Debug=True),Django将为我们自动查找这些静态文件(每个app)并在网页上显示出来。然而,在部署模式下,Django认为这些工作交由web服务器来运行会更有效率。

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

这个命令将会把每个app里的static目录下的文件copy到STATIC_ROOT这个文件夹下。

如果在部署模式下,即:(Debug=False)访问相关网页,如:文件名,将不会访问Django下各个App中的static文件夹,而是STATIC_ROOT中所指定的文件夹。

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

这相当于告诉Django碰到一个"static"开头的链接时,该如何处理。

了解完以上之后,我们让图片在前端显示出来。

编写一个show视图函数,来传递动态图片:

然后编写show.html:

Django怎么做静态化页面?

如果网站的流量过大,每次访问时都动态生成,执行SQL语句,消耗大量服务器资源,这时候可以考虑生成静态页面。

生成静态很简单,下面是一个例子:

只要在views.py中这样写就行了

fromdjango.shortcutsimportrender

fromdjango.template.loaderimportrender_to_string

importos

defmy_view(request):

context={'some_key':'some_value'}

static_html='/path/to/static.html'

ifnotos.path.exists(static_html):

content=render_to_string('template.html',context)

withopen(static_html,'w')asstatic_file:

static_file.write(content)

returnrender(request,static_html)

上面的例子中,当用户访问时,如果判断没有静态页面就自动生成静态页面,然后返回静态文件,当文件存在的时候就不再次生成。

也可以用一个文件夹,比如在project下建一个static_html文件夹,把生成的静态文件都放里面,让用户像访问静态文件那样访问页面。

更佳办法

但是一般情况下都不需要生成静态页面,因为Django有缓存功能,使用DjangoCache(缓存)就相当于把生成生成静态页面,而且还有自动更新的功能,比如30分钟刷新一下页面内容。

django前端怎么设置静态文件路径

设置一个路径变量

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

#

Absolute

path

to

the

directory

static

files

should

be

collected

to.

#

Don't

put

anything

in

this

directory

yourself;

store

your

static

files

#

in

apps'

"static/"

subdirectories

and

in

STATICFILES_DIRS.

#

注意要修改STATIC_ROOT变量

STATIC_ROOT

=

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

#

URL

prefix

for

static

files.

#

Example:

ample.com/static/",

"h

ic.example.com/"

STATIC_URL

=

'/static/'

#

当然还有STATICFILES_DIRS变量

STATICFILES_DIRS

=

(

#

Put

strings

here,

like

"/home/html/static"

or

"C:/www/django/static".

#

Always

use

forward

slashes,

even

on

Windows.

#

Don't

forget

to

use

absolute

paths,

not

relative

paths.

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

)

django开发环境中静态资源怎么存放

其实将静态文件路径硬编码在模版中也可以正常运行,如使用href="/static/css/sample.css",前提是配置好了STATIC_URL和STATIC_DIRS。

但并不推荐这么做,因为如果后来静态资源的位置发生了迁移,如使用独立服务器或者使用CDN,就要修改一大堆URL。而使用推荐的方法可以避免这个庞大的工作量,最多只需要修改STATIC_URL即可。

python——Django项目开发:配置项目/static/路径,调用css、img、js等静态文件

在Django项目开发中,不能像正常web开发一样通过'imgs/bg.jpg'访问本地静态文件,需要做一些配置,才能实现静态文件的访问。

一、首先在项目根路径下新建一个static文件夹,然后在static文件夹下可以新建相应的css、imgs、js等文件夹,用于存放css、img、js等静态文件。

二、项目配置

1、打开settings.py,在底部添加:

2、打开urls.py,在urlpatterns中添加:(注意,如果你在blog目录下也建立了urls.py,那么就得在blog/urls.py中做修改。别忘了importsettings):

(不过我经过实测,不加这一个,也可以完成静态文件的访问)

3、在html模板最上面添加:

然后在需要的地方按照这个格式进行调用,如:

最后重新运行项目,img等本地静态文件就可以被django找到了,这时模板对应的页面就可以显示使用img等文件了。

结语:以上就是首席CTO笔记为大家介绍的关于django静态页面储存在哪里的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场

相关了解……

你可能感兴趣的内容

大家正在搜

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网