django框架url渲染

  1. url格式
    协议 域名 路径 参数
    http://www.baidu.com:端口/路径?参数
  2. url设置

url文件配置

path('test/<int:xx>/',views.test)

视图函数

def test(request,xx):
	HttpResponse('hello %s '% xx)
  1. include()作用
    在一个项目中,有一个总的urls.py控制调节整个项目,每个项目APP都有一个属于自己的urls.py。include()在总urls.py文件中注册与项目app中的urls.py关联起来。
  2. include()例子
# 主目录下的urls.py book为APP名字
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')),
]
 
# app book下面的urls.py

```python
from django.urls import path
from . import views
urlpatterns = [
    path('index/',views.index),
    ]

# app book下面的views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
    return HttpResponse('这个book的首页!!')```

  1. kwargs的作用
    转递一个python的字典作为额外的参数传递给视图函数
# 主urls.py文件
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
    path('admin/', admin.site.urls),
    path('book/',include('book.urls'),{
    
    'switch':'true'}),
]
# {'switch':'ture'}为字典参数
# 使用字典参数kwargs时views.py中的函数都需要添加**kwargs的参数

# app book 下面的views.py
from django.http import HttpResponse
import datetime      # 时间方面的模块
def index(request,**kwargs):
    if kwargs.get('switch') == 'true':       # get方法通过键取值
        print(datetime.datetime.now())       # 打印当前的时间
    return HttpResponse('这个book的首页!!')   # 返回页面
  1. 重定向
    就相当如果有一个网站,需要维护现在转移到另一个新的页面,让原来的url依旧有用。实质就是通过在原来旧页面跳转到新页面曲。
# 页面重定向例子
app book下面的urls.py
from Django.urls import path
from . import views
urlpatterns = [
	path('index/',views.index),
# 通过name可以为url取一个新名字  就算更改了对应的url,用原来的url依旧有用
	path('test/',views.test,name='test')     
	path('test_new/',views.test_new,name='test_new')
]

# app book里面的views.py
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':
	# reverse()函数解析test_new的url
	# redirect()函数通过解析出来的地址进行跳转到对应的地址
		return redirect(reverse('test_new'))    
	return HttpResponse('这是文章的首页')

def test_new(request, **kwargs):
	return HttpResponse('这是新的文章首页')

猜你喜欢

转载自blog.csdn.net/qq_53075298/article/details/120069771