4Django域名反向解析及静态页面的配置和加载

url反向解析:

url可能出现的位置:

1< a href='url'>< / a>

2< form action = 'url' mrthod='post' >

3HttpResponseRedirect('url')

4前端在使用相对url地址时记得一定要在地址前面加上斜杠,否则找不到路由会报404错误

5url反向解析其实就是在path函数里给路由起一个别名path(route,views,name="别名")

6模板中使用url别名的方法就叫域名反向解析{ % url '别名' '参数1' ‘参数2’% }

示例1:在模板中如何识别别名

URL中配置别名并且路由接收参数:

path('test_url_result/<int:age>', views.test_view, name='tr')

模板中使用别名并给别名传参:

<a href="{% url 'tr' '100'%}">url反向解析</a>

 

示例2:在视图中如何使用别名

在视图函数中可调用django中的reverse方法进行反向解析,例如reverse('别名', args=[], kwargs={})

from django.urls import reverse
print(reverse('pagen', args=[300]))
print(reverse('person',kwargs={'name':'zhangsan', 'age':18}))

 

练习302跳转:

复制代码
#url:

path('base_index',views.base_view,name='base_index'),
path('test_url_302tiaozhuan',views.test_url_302tiaozhuan),

#views:
def test_url_302tiaozhuan(request): from django.urls import reverse url = reverse('base_index') return HttpResponseRedirect(url)
#访问: http:
//127.0.0.1:8000/test_url_302tiaozhuan
复制代码

 

 --------------------------------------------------------------

静态文件的配置和加载

1加载静态文件{% load static %}

2使用静态资源{% static '静态文件路径'%},例如<image src={%static 'images/1.jpg'%}>

练习:

1静态文件需要在settings里进行如下两项配置:

settings:

STATIC_URL = '/static/' #告诉django这个文件夹时静态文件,默认创建django时已经配置好
STATICFILES_DIRS = (os.path.join(BASE_DIR,'STATIC'),) #指定静态文件的目录,需要自己配

2在项目同目录下创建static文件夹并创建子文件夹,然后在项目app中创建视图文件,如下:

复制代码
mysite3
    mysite3
    __init__.py
    asgi.py
    settings.py
    urls.py
    views.py
    wsgi.py
static
    image
    js
templates
复制代码

3创建视图函数

from django.shortcuts import render

def test_static(request):
    return render(request,'test_static.html')

4创建模板文件:

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>测试静态文件</title>
</head>
<body>
<img src="/static/image/1.jpg" width="200px" height="200px">
{% load static %}
<img src="{% static 'image/2.jpg' %}">
</body>
</html>
复制代码

5配置路由并访问测试:http://127.0.0.1:8000/test_static

from . import views
urlpatterns = [
    path('test_static',views.test_static),
]

 

posted @   linuxTang  阅读(113)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示