django url 区分静态文件跟动态文件的不一样的,静态文件,静态请求是不走url的,就是不用设置 path_url ,直接在 setting.py 进行配置,django 内部直接指定静态路径,从而显示静态资源,具体如下:(这个是django内部自动配置的url,自动显示在settings.py 文件里面)
STATIC_URL="/static/'
对应的url 就是
http://127.0.0.1/static/xxx ; xxx是表示具体的静态资源位置.,就是从配置中就指定访问静态文件需要通过/static/xx ,
,该url对应的文件地址是什么,需要在setting.py 中指定静态文件的位置,
具体操作方法:
setting.py 文件中:
STATICFILES_DIRS=(
os.path.join(BASE_DIR,"static"),)
# 这是静态文件所在的文件夹的路径集合,是一个元组,符合所有的元组特征,可以设置多个文件的位置,如果是,templates/static 那么就要在 templates 文件下建立 static,如果仅仅是static 就是在 根目录下(BASE_DIR),直接建立static 文件夹(静态文件所在文件夹),以上都是setting.py 里面的配置。
2.以下是在templates 里面的呈现:
2.1 首先要在setting.py 设置 templates的路径
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
其中红色那条就是,它的意思就是,根目录下面的templates文件夹所在的位置。其他信息是django里面自带的
2.2 建立测试文件
2.2.1 在view.py 建立 方法:
def imges_v(request):
return render(request,'imges-t.html')
2.2.2 在url.py 建立url的链接:
urlpatterns = [path('imges_v',imges_v)]
2.2.3 把静态文件如图片放到路径下面:
2.2.4在templates 文件夹下面建立 imges-t.html 的文件,img中代码如下:第一个img 是绝对路径,第二个img 是相对路径
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试静态文件,测试图片</title>
</head>
<body>
<h1 style="color: brown"> 静态文件,图片</h1>
<img src="http://127.0.0.1:8000/static/imges/2.jpg" width="100px" height=100px">
<hr>
<<img src="static/imges/2.jpg" width="100px" height=100px">
</body>
</html>
2.2.4 在模板中填写的第二种方法:可以直接导入{% load static %} 这个语句,这样就可以直接在模板中写文件地址,django会做转为2.2.3的格式,以上代码可以改为:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>测试静态文件,测试图片</title>
</head>
<body>
<h1 style="color: brown"> 静态文件,图片</h1>
<h3>1.以下使用是ulr格式填写的src地址</h3>
<img src="http://127.0.0.1:8000/static/imges/2.jpg" width="100px" height=100px">
<hr>
<img src="static/imges/2.jpg" width="100px" height=100px">
<h3 style="color: bisque">以下是用文件的格式测试图片格式的</h3>
{% load static %}
<img src="{% static 'imges/2.jpg'%}"width="50"height="50">
</body>
</html>
建议采用这种方式,原因是 这种更加灵活,这种方式如果更改static 文件前缀的话,只需要更改setting.py 里面的 static 更改为需要的字段即可,不用更改 文件夹的名称或者文件的名称, 从而在url 中 呈现 所更改的字段,例如: 如果要把url 中静态文件的路径更改为 主机名/static/静态文件名 更改为 主机名/想要更改的名称/静态文件名 ,就是只需要更改这个代码就行了,在url就会对应的改变。
STATIC_URL = '/statics/'