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

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('这是新的文章首页')
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值