3.1 URL编写规则
在讲解URL编写规则之前,需对MyDjango项目的目录进行调整,使其更符合开发规范性。在每个App中设置独立的静态资源和模板文件夹并添加一个空白内容的.py文件,命为urls.py。项目结构如图3-1所示。
图3-1 MyDjango目录结构
在App里添加urls.py是将属于App的URL都写入到该文件中,而项目根目录的urls.py是将每个App的urls.py统一管理。当程序收到用户请求的时候,首先在根目录的urls.py查找该URL是属于那个App,然后再从App的urls.py找到具体的URL信息。在根目录的urls.py编写URL规则,如下所示:
# 根目录的urls.py from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('',include('index.urls')) ]
上述代码设定了两个URL地址,分别是Admin站点管理和首页地址。其中Admin站点管理是在创建项目时已自动生成,一般情况下无须更改。urls.py的代码解释如下。
• from django.contrib import admin:导入Admin功能模块。
• from django.urls import path,include:导入URL编写模块。
• urlpatterns:整个项目的URL集合,每个元素代表一条URL信息。
• path('admin/', admin.site.urls):设定Admin的URL。'admin/'代表127.0.0.1:8000/admin地址信息,admin后面的斜杠是路径分隔符;admin.site.urls是URL的处理函数,也称为视图函数。
• path('',include('index.urls')):URL为空,代表为网站的域名,即127.0.0.1:8000,通常是网站的首页;include将该URL分发给index的urls.py处理。
由于首页的地址分发给index的urls.py处理,因此下一步需要对index的urls.py编写URL信息,代码如下:
# index的urls.py from django.urls import path from . import views urlpatterns = [ path('', views.index) ]
index的urls.py的编写规则与根目录的urls.py大致相同,基本上所有的URL都是有固定编写格式的。上述代码导入了同一目录下的views.py文件,该文件用于编写视图函数,处理URL请求信息并返回网页内容给用户。因此,在views.py中编写index函数的处理过程,代码如下:
# index的views.py from django.http import HttpResponse # Create your views here. def index(request): return HttpResponse("Hello world")
index函数必须设置参数request,该参数代表当前用户的请求对象,该对象包含用户名、请求内容和请求方式等信息,视图函数执行完成后必须使用return将处理结果返回,否则程序会抛出异常信息。启动MyDjango项目,在浏览器中打开http://127.0.0.1:8000/,运行结果如图3-2所示。
图3-2 首页内容