陆续更新中:
Django基础(1): 目录文件简介
Django基础(2): 创建应用
Django基础(3): 配置url
Django基础(4): 建立Templates

使用函数配置url
在这里简单介绍一下上图中的第一种方法,即使用函数来配置url:
- 首先需要import我所创建的APP的Views文件,即
Import my_app.views
- 在url中配置path,其中,''是你在APP.views中定义的用于响应的函数,有3个参数,第1个是url本身,即地址。注意在写这个Url的时候,最好默认在url后面加上/,这样会减少出现错误的可能性。第2个参数是该url地址对应的响应方法,即在my_app.views中创建的响应函数,比如我在app.views中创建了一个名为index的响应请求的函数:
def index(request):
return HttpResponse('Hello, World')
那么对应的url配置可以这样写:
import my_app.views as mv
urlpatterns = [
path('index/', mv.index),
]
第3个参数是url的名称,可不配置
以上代码完成后,在terminal中输入python manage.py server,看到运行结果后,在地址栏中输入http://127.0.0.1:8000/index/,就可以看到Hello, world已经被打印出来了
更常用的方法:包含其他的url配置文件
在项目文件变得非常庞大时,app会非常多,使用上诉的第一种方法会使得文件变得庞大,而且也增加了各url命名冲突的风险,为了避免这种情况,往往推荐使用另一种方法配置Url,也就是图1中的第3种方法,使用其他的url来配置
1. 在跟urls.py中引入Include()
from django.urls import path, include
2. 将前面方法中提到的mv.index改写为include('myapp.urls')
对应的url配置文件写成:
from django.contrib import admin
from django.urls import path, include
import my_app.views as mv
urlpatterns = [
path('index/', include('myapp.urls')),
]
3.在APP目录下创建urls.py文件,格式与根urls.py相同
注意到现在myapp文件夹下面是没有urls这个模块的,所以我们需要在myapp文件夹下新建一个urls.py,然后把我们在上一种方法中配置的url写进去,下面代码中的Index指向的是前面编写的Index的响应函数
from django.urls import path, include
from . import views
urlpatterns = [
path('index/', views.index),
]
然后尝试在terminal中运行python manage.py server, 就可以看到运行成功的结果了,注意在这里,跟urls.py针对APP配置的URL名称,是该APP所有URL的总路径,所以需要在地址栏中输入两个Index,即http://127.0.0.1:8000/index/index/,这样才可以得到和第一种方法一致的结果。如果不想要两个Index后缀,可以修改myapp下面的url,把path中的index/去掉:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.index),
]
此时,在地址栏中就只需要输入一个index了:http://127.0.0.1:8000/index/
注意事项
- 在旧版本的django中,还需要对path使用正则表达式进行约束,否则会出现在链接后随意加后缀名也返回当前页面的情况,需要写成
path(r'^$', views.index)
使用^$确保在后面没有后缀名的情况下才显示当前页面 - 配置URL时注意以‘/’结尾,养成习惯
网友评论