路由层
路由匹配方式
4.1静态路由
urlpatterns属性 : 映射关系
path方法
‘’’
str:一个匹配对应url地址的规则字符串
‘’’
re_path
‘’’
regex:一个匹配对应url地址的规则字符串
‘’’
静态路由
静态路由用来映射对应视图函数,以下是一个简单的例子
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello Worlds!')
from django.urls import path,re_path
from urlapp import views
urlpatterns = [
path('',views.index),
re_path(r"^",views.index),
]
4.2 动态路由
def index(request,x,y):
content = "x:%s\ny:%s" % (x,y)
return HttpResponse(content)
4.2.2 动态路由转换器
from django.urls import path,re_path
from urlapp import views
urlpatterns = [
path('<int:x>/<str:y>/',views.index), # 指明类型
path("<x>/<y>/",views.index), # 不指明类型
re_path(r"^(?P<x>\d+)/(?P<y>[a-zA-Z]+)/$"), # (?P<name>pattern) 正则分组
re_path(r"^(\d+)/([a-zA-Z]+)/$"),
]
在期中的方法
'''
str:匹配除了路径分隔符(`/`)之外的非空字符串,这是默认的形式
int:匹配正整数,包含0
slug:匹配字母、数字以及横杠、下划线组成的字符串
uuid:匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00
path:匹配任何非空字符串,包含了路径分隔符
'''
4.2.3 动态路由传参与GET传参的异同
- 动态路由传参,参数需要参与路由匹配,在路由匹配中获取参数
- GET参数,参数部分不需要参与路由匹配,在视图中获取参数
路由的分发
实现
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('',include("urlapp.urls")) # 使用include 实现路由分发,找到子app下的路由文件
]
今天的错误解析
RuntimeError: ‘cryptography’ package is required for sha256_password or caching_sha2_password auth methods
sha256_password和sha2caching 需要认证 cryptography包
在编辑认证里去认证
解决方法是请求同学帮忙解决的问题