基础:
# 主urls文件
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),// 读取根目录的路由
path('index/',include('app1.urls'))// 读取app目录里面的路由(include就是用来包含app目录里面的内容)
]
# app里面的urls文件
from django.urls import path
from app1 import views
urlpatterns = [
path('index/',views.index,name='index')
# name会在后面的模板用到如(里面就相当127.0.0.1/a/index/数据A/数据B)
# 注意使用name有不好的地方就是可能会出现多个路由重复的情况,解决在每个app下添加单独的app_name = 'index'
]
(可以匹配任何ASCII码、连接符和下划线,如88-ak)
(uuid格式的,如a3d68fa7-e6a1-49f8-ab0d-e7bd7da82672)可使用正则表达式
def index(request,id):
print(id) # 即可打印出来uuid
return render(request,'index.html')
name='indexb'
:配合app_name使用app_name='indexa'
:与name一同使用,用法:indexa:indexb
这两个参数主要可用于类似:(里面就相当127.0.0.1/a/index/数据A/数据B)
from django.urls import path
from testWeb import views
app_name='index'
urlpatterns = [
path('' ,views.index,name='index')
]
导入:
from django.urls import resolve
from django.shortcuts import reverse
reverse("indexa:indexc")
:解析出路由地址,此例返回结果为/logggg
(地址设有变量写入参数args
(列表方式)或者kwargs
(字典方式),写入数据)resolve(reverse("indexa:indexc"))
:返回结果为该路由的详细信息,如下图from django.urls import path
from testWeb import views
app_name='indexa'
urlpatterns = [
path('' ,views.index,name='index'),
path('/logggg',views.go,name='indexc')
]
导入:
from django.views.generic import RedirectView
from django.shortcuts import redirect
urlpatterns=[
path('index/',views.index),
path('go/',RedirectView.as_view(url="/"))
]
def index(request):
return redirect('/go')
request.method
:获取请求方式def go(request):
print(request.method)
return redirect('https://www.baidu.com')
request.GET['id']
:获取请求参数request.POST['id']
:获取表单提交的数据request.body
:获取ajax提交的json数据post=json.loads(request.body) # 变为json数据
days=post.get("num")
request.COOKIES
:获取cookie数据
request.session.values()
:获取当前用户具体服务器里面储存得session值
request.FILES
:获取文件信息
request.META
:包含当前HTTP请求的Headers头部信息, 字典形式。键值KEY都是大写。比如**request.META[‘REMOTE_ADDR’]**可获取用户远程IP地址
request.user
:获取当前访问用户的所有信息
request.path
:获取当前访问路径