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("优酷娱乐首页")
访问: