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), ]