# 路由
urlpatterns = [
re_path(r'^blog/(?P<path1>[a-z]+)/(?P<path2>\d+)/$', views.test2),
]
# 视图
def test2(request, path1, path2):
return HttpResponse('这是python自学网')
# 访问地址
# http://127.0.0.1:8000/blog/sdfds/12/
''' # 只能实现路由动态,还无法实现数据动态调用,在模板中实现
# 视图
def test2(request, path1, path2):
# return HttpResponse('这是python自学网')
class_list = Class.objects.all()
return render(request, 'test1.html', {'classes': class_list})
# 模板
<ul>
{% for class in classes %}
<li><a href="/{{ class.cname }}/">{{ class.cname }}</a></li>
{% endfor %}
</ul>
"""path()路由转换器类型和使用方法
https://blog.csdn.net/DD1852/article/details/126331868
path()函数
导入:from django.urls import path
语法:path(route,views,name=None)
参数:
1.route:字符串类型,匹配的请求路径
2.views:指定路径所对应的视图处理函数的名称
3.name:为地址起别名,在模板中地址反向解析时使用
语法:<转换器类型:自定义名称>
urlpatterns = [
path('admin/', admin.site.urls),
path('page/<int:num>/<str:name>/',views.page_views)
]
def page_views(resquest, num, name):
h = "<h1>这是id号%s的网页!</h1>"%(num)
return HttpResponse(h)
转换器类型 作用 示例
str 匹配除了“/”之外的非空字符串 <str:username>匹配 /v1/users/ane
int 匹配0或任何正整数,返回一个int <int:pg>匹配 /page/10
slug 匹配任意由ASCII字母或数字以及连字符和下划线组成的短标签 <slug:sl>匹配 detail/this-is-django
path 匹配非空字段,包括路径分隔符“/” < path:ph >匹配 /v1/users/a/b/c
"""