- url格式
协议 域名 路径 参数 http://www.baidu.com:端口/路径?参数 - url设置
url文件配置
path('test/<int:xx>/',views.test)
视图函数
def test(request,xx):
HttpResponse('hello %s '% xx)
- include()作用
在一个项目中,有一个总的urls.py控制调节整个项目,每个项目APP都有一个属于自己的urls.py。include()在总urls.py文件中注册与项目app中的urls.py关联起来。 - include()例子
from django.contrib import admin
from django.urls import path,include
from . import views
urlpatterns = [
path('admin/', admin.site.urls),
path('book/',include('book.urls')),
]
```python
from django.urls import path
from . import views
urlpatterns = [
path('index/',views.index),
]
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse('这个book的首页!!')```
- kwargs的作用
转递一个python的字典作为额外的参数传递给视图函数
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('book/',include('book.urls'),{'switch':'true'}),
]
from django.http import HttpResponse
import datetime
def index(request,**kwargs):
if kwargs.get('switch') == 'true':
print(datetime.datetime.now())
return HttpResponse('这个book的首页!!')
- 重定向
就相当如果有一个网站,需要维护现在转移到另一个新的页面,让原来的url依旧有用。实质就是通过在原来旧页面跳转到新页面曲。
app book下面的urls.py
from Django.urls import path
from . import views
urlpatterns = [
path('index/',views.index),
path('test/',views.test,name='test')
path('test_new/',views.test_new,name='test_new')
]
from django.shortcuts import render, reverse, redirect
from django.http import HttpResponse
import datetime
def index(request,**kwargs):
if kwargs.get('switich') == 'ture':
print(datetime.datetime.now())
return HttpReponse('这个book的首页')
def test(request, **kwargs):
if kwargs.get('switch') == 'true':
return redirect(reverse('test_new'))
return HttpResponse('这是文章的首页')
def test_new(request, **kwargs):
return HttpResponse('这是新的文章首页')
|