Ebook123

导航

4. Django Url 路由基础应用

1.  seheme://host:port/path/?query-string=xxx

  • scheme: 代表是访问的协议,一般为http 或者https以及ftp 等

  • host: 主机名,域名,比如www.baidu.com

  • port:  端口,当你访问一个网站的时候,浏览器默认使用80端口

  • path: 查找路径。如:www.jianshu.com/trending/now, 后面trending/now 就是path

  • query-string: 查找字符串,比如:www.baidu.com/s?wed=python ,后面的wd=python就是查找字符串

2. 多主机应用

  当一个网站比较庞大的时候,每个模块就是一个独立的网站,所有子模块的网站都对应着独立的服务器

3. 多路径应用

  当一个网站不是很大的时候,同样具备多个模块,每个模块只是网站下的子文件夹,所有的模块都共用一个服务器

4. URL路由的介绍和基本使用

  根据用户访问提供URL在URL列表中匹配,如果匹配上,去执行相应的View中的访问,如果匹配不上,返回404错误

  创建App01

  

 

   在app01/views.py中创建3个方法

  

 

   在djDemo01/url.py 添加路由规则:

  

  访问如下:

  首页:

  

   电影:

  

   电视:

  

  娱乐:

  

5. URL 中传入参数

url 代码

 1 from django.contrib import admin
 2 from django.urls import path
 3 from app01 import views as app01views
 4 from django.urls import re_path
 5 
 6 urlpatterns = [
 7     path('admin/', admin.site.urls),
 8     path('',app01views.index),
 9     path('tv/',app01views.tv),
10     path('movie/',app01views.movie),
11     # path('movie/detail/<movie_id>/',app01views.movie_detail),
12     re_path('movie/detail/(?P<movie_id>[0-9]{6})/(?P<type>[0-9])',app01views.movie_detail), # 使用正则movie_id 0-9 6位数字,type 类型为0-9 数字
13     path('yl/',app01views.yl)
14 ]

views 代码

 1 from django.shortcuts import render
 2 from django.http import HttpResponse
 3 
 4 # Create your views here.
 5 
 6 def index(request):
 7     return HttpResponse("优酷首页")
 8 
 9 def tv(request):
10     return HttpResponse("优酷电视剧首页")
11 
12 def movie(request):
13     return HttpResponse("优酷电影首页")
14 
15 def movie_detail(request,movie_id,type):
16     type_name = ["喜剧片","动作片","爱情片","纪录片","历史剧"]
17     return HttpResponse("播放电影编号为:%s! \n 播放的电影类型: %s" % (movie_id,type_name[int(type)]))
18 
19 def yl(request):
20     return HttpResponse("优酷娱乐首页")

访问:

  

 

posted on 2022-05-02 14:22  Ebook123  阅读(29)  评论(0编辑  收藏  举报