玩转Django 2.0
上QQ阅读APP看书,第一时间看更新

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 首页内容