一.路由系统
1.urlpatterns=[
path(要匹配的路径(可以是正则表达式),视图函数,参数,别名)
]
2.正则表达式
re_path(r’^index18/(?P\d{4})/(?P\d{2})/
′
,
v
i
e
w
s
.
i
n
d
e
x
8
,
n
a
m
e
=
′
i
n
d
e
x
8
′
)
(
)
为
分
组
?
P
<
x
x
x
>
参
数
n
a
m
e
为
别
名
,
路
径
中
的
名
字
修
改
后
只
要
别
名
不
改
,
原
路
径
继
续
访
问
3.
视
图
函
数
中
指
定
默
认
值
例
:
d
e
f
i
n
d
e
x
(
r
e
q
u
e
s
t
,
n
u
m
=
1
)
r
e
t
u
r
n
H
t
t
p
R
e
s
p
o
n
s
e
(
′
i
n
d
e
x
′
+
n
u
m
)
u
r
l
s
.
p
y
中
需
有
:
r
e
p
a
t
h
(
′
i
n
d
e
x
/
′
,
v
i
e
w
s
.
i
n
d
e
x
)
r
e
p
a
t
h
(
r
′
i
n
d
e
x
/
(
?
P
<
n
u
m
>
[
0
−
9
]
)
/
', views.index8,name='index8') ()为分组 ?P<xxx> 参数 name 为别名 , 路径中的名字修改后只要别名不改,原路径继续访问 3.视图函数中指定默认值 例:def index(request,num=1) return HttpResponse('index'+num) urls.py中需有:re_path('index/',views.index) re_path(r'^index/(?P<num>[0-9])/
′,views.index8,name=′index8′)()为分组?P<xxx>参数name为别名,路径中的名字修改后只要别名不改,原路径继续访问3.视图函数中指定默认值例:defindex(request,num=1)returnHttpResponse(′index′+num)urls.py中需有:repath(′index/′,views.index)repath(r′index/(?P<num>[0−9])/’,views.index)
4.url反向代理(别名)
name = index
跳转到页面index # 不使用代理
<a href=’{% url ‘index’%}’>跳转到页面index
5.重定向
from django.shortcuts import reverse
ret = reverse(‘xxx’)–> redirect(ret)
无参数:
reverse(‘name的名字’)
有关键字参数:
reverse(‘name的名字’,kwargs=字典) # 常用
有位置参数:
reverse(‘name的名字’,args=位置参数元组)
6.app
当项目足够大的时候,我们将功能单独分成多个app进行开发
1.创建app
doc窗口:python manage.py startapp app01
pycharm:1.新建项目时就勾选
2.Terminal 中输入python manage.py startapp app01
3.Tool-->Run manage.py Task-->startapp app01
2.使用
在app01中添加views.py和urls.py
在原settings.py中INSTALLED_APPS=['app01,'] # 记得加逗号
在原urls.py中 from django.urls import include
urlpatterns=[path('app01/',include('app01.urls'))]
避免name重复:在app01的urls.py中加app_name='app01'
在返定向引用中<a href='{% url 'app01:index'%}'>跳转到页面index</a>