django如何引入静态文件?

2023-03-08 21:31:14 9 0
卡卡

导读:今天恰卡编程网来给各位分享关于django如何引入静态文件的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

如何在django里使用静态文件

推荐用新版本的Django进行开发,可以肯定的是 Django 1.4 以后的版本应该都支持下面的设置

django如何引入静态文件?

注意:Django 1.4 版本需要在 project/urls.py 底部加上:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()

Django 1.5 - Django 1.8 不需要添加上面的代码。

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

# Static files (CSS, JavaScript, Images)

STATIC_URL = '/static/' # 当运行 python manage.py collectstatic 的时候# STATIC_ROOT 文件夹 是用来将所有STATICFILES_DIRS中所有文件夹中的文件,以及各app中static中的文件都复制过来# 把这些文件放到一起是为了用apache等部署的时候更方便STATIC_ROOT = os.path.join(BASE_DIR, 'collected_static') # 其它 存放静态文件的文件夹,可以用来存放项目中公用的静态文件,里面不能包含 STATIC_ROOT# 如果不想用 STATICFILES_DIRS 可以不用,都放在 app 里的 static 中也可以STATICFILES_DIRS = ( os.path.join(BASE_DIR, "common_static"), '/path/to/others/static/', # 用不到的时候可以不写这一行) # 这个是默认设置,Django 默认会在 STATICFILES_DIRS中的文件夹 和 各app下的static文件夹中找文件# 注意有先后顺序,找到了就不再继续找了STATICFILES_FINDERS = ( "django.contrib.staticfiles.finders.FileSystemFinder", "django.contrib.staticfiles.finders.AppDirectoriesFinder")

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

当 DEBUG = True 时,Django 就能自动找到放在里面的静态文件。(Django 通过 STATICFILES_FINDERS 中的“查找器”,找到符合的就停下来,寻找的过程 类似于 Python 中使用 import xxx 时,找 xxx 这个包的过程)。

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

dj18static├── blog│ ├── __init__.py│ ├── admin.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

当 settings.py 中的 DEBUG = True 时,打开开发服务器 python manage.py runserver 直接访问 /static/zqxt.png 就可以找到这个静态文件。

也可以在 settings.py 中指定所有 app 共用的静态文件,比如 jquery.js 等

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

把 jquery.js 放在 common_static/js/ 下,这样就可以 在 /static/js/jquery.js 中访问到它!

django中怎么载入css等静态文件

和正常的HTML一样,不过使用Django父子模板,全站、模块、页面三级CSS文件更好布局一点。

django 怎么配置可以获取静态文件

可以用服务器配置,js、css、img转到相应路径。也可以在url.py里加入(r'^media/(?Ppath.*)$','django.views.static.serve',{'document_root': settings.STATIC_PATH}),可以在settings.py里设置也可以使用绝对路径。意思是/media/?.(js|css|img|others)的静态文件在那个路径下。

Django媒体文件URL的配置

在Django中经常需要配置图片、视频等表态文件,在配置时较为复杂,这里纪录一下:

在文件尾部加入以下目录,用于存放上传的文件

在models中写上image字段其中 %Y 代表年, %m 代表月, blank=True 代表可以为空。当上传文件时,代表上传到image目录下,以当前年月子目录的文件夹中。

image = models.ImageField(upload_to="image/%Y/%m", blank=True)

其中src中的{{ MEDIA_URL }}会在模板中渲染为第一步中的 /media/

如果您想在模板中使用{{MEDIA_URL}},请在“模板”的“context_processors”选项中添加 django.template.context_processors.media 。

通过以上步骤,基本上可以在前端正常渲染出结果了,但还需要给图片添加一个URL以正常显示。

第一行为引入静态文件的serve,第二行为导入工程配置文件中的 MEDIA_ROOT

在url中加入:

django 1.9 怎么配置静态文件

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

1、django对静态资源的配置是跟版本有关的!!!切记!!!1.3以前的和以后的配置不太一样!!!下面仅针对Django1.9;

2、settings.py中的installed

apps

要包含'django.contrib.staticfiles';

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

4、调用时用如下形式:

{%

load

static

%}

img

src="{%

static

"my_app/myexample.jpg"

%}"

alt="My

image"/

导入js,img等静态文件后报错:

File

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

line

249,

in

enum_types

ctype

=

ctype.encode(default_encoding)

#

omit

in

3.x!

UnicodeDecodeError:

'ascii'

codec

can't

decode

byte

0xb0

in

position

1:

ordinal

not

in

range(128)

[27/Dec/2015

15:26:32]

"GET

/static/assets/img/nextPage_small_grey.jpg

HTTP/1.1"

500

59

找到关键报错文件mimetypes.py,百度了一下,找到了解决方案:在Python安装目录下的lib/site-packages中添加一个文件sitecustomize.py,内容为

import

sys

sys.setdefaultencoding("cp1251")

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

结语:以上就是恰卡编程网为大家整理的关于django如何引入静态文件的相关内容解答汇总了,希望对您有所帮助!如果解决了您的问题欢迎分享给更多关注此问题的朋友喔~

收藏
分享
海报
0 条评论
9
上一篇:在线python课程费用一般多少? 下一篇:安装Python要多少空间?

本站已关闭游客评论,请登录或者注册后再评论吧~

忘记密码?

图形验证码