分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Django 框架之 URL

发布时间:2023-09-06 01:47责任编辑:赖小花关键词:暂无标签
  • URL配置就像Django所支撑网站的目录。它的本质是URL模式以及要为该URL模式调用的视图函数之间的映射表。
# 示例:urlpatterns = [ ???path(route, view, kwargs=None, name=None), ???re_path(正则表达式, views视图函数, 参数, 别名),]# 参数说明:# ??一个正则表达式字符串# ??一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串# ??可选的要传递给视图函数的默认参数(字典形式)# ??一个可选的name参数# 示例一:# mysite/mysite/urls.pyfrom django.urls import path, re_pathfrom blog import viewsurlpatterns = [ ???path('cur_time', views.cur_time), ???path('userInfo', views.userInfo), ???re_path(r'^articles/2003/$', views.special_case_2003), ???re_path(r'^articles/([0-9]{4})/$', views.year_archive) ???re_path(r'^articles/([0-9]{4})/([0-9]{2})/', views.month_archive)]# mysite/blog/views.pydef special_case_2003(req): ???return HttpResponse('2003')def year_archive(req, y): ??????# 参数y接收: ([0-9]{4}) 传入的值 ???return HttpResponse('year':y) ??def month_archive(req, y, m): ???return HttpResponse('year:'+y+'month:'+m) ???# 参数y接收: ([0-9]{4}) 传入的值, m 接收([0-9]{2})# 示例二: Named groups# 预备知识: 正则表达式import reret = re.search('(?P<id>\d{3})/(?P<name>\w{3})', 'wwwwwfffttt555/ooo')print(ret.group()) ?????????# 输出: 555/oooprint(ret.group('id')) ?????# 输出: 555print(ret.group('name')) ???# 输出: ooo# mysite/mysite/urls.pyfrom django.urls import path, re_pathfrom blog import viewsurlpatterns = [ ???re_path(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/', views.month_archive)]# mysite/blog/views.pydef month_archive(req, year, month): ??????????# 此处形参必须为 year,month ???return HttpResponse('year:'+year+'month:'+month) ???# 示例三:# mysite/mysite/urls.pyfrom django.urls import path, re_pathfrom blog import viewsurlpatterns = [ ???re_path(r'^index/(?P<name>[0-9]{4})/', views.index, {'name':'xiaohu'})]# mysite/blog/views.pydef index(req, name): ??????????# 此处形参必须为 name ???return HttpResponse(name) ??????????# 参数 {'name':'xiaohu'} 会覆盖URL中的参数# 示例四:# mysite/mysite/urls.pyfrom django.urls import path, re_pathfrom blog import viewsurlpatterns = [ ???re_path(r'^index/', views.index, name='book') ???# name表示URL的别名 ???re_path(r'^/movie/index/', views.index, name='book')]# mysite/blog/views.pydef index(req): ?????????????if req.method=='POST': ???????username=req.POST.get('username') ???????pwd=req.POST.get('pwd') ???????if username=='xiaohu' and pwd=='123': ???????????return HttpResponse('登录成功!') ???return render(req, 'login.html')# mysite/templates/login.html<body> ???<!-- 相比于 action='/index/', URL地址更灵活 -- ???<form action="{% url 'book' %}" method="post"> ???????<input type="text" name="username"> ???????<input type="password" name="pwd"> ???????<input type="submit" value="submit"> ???</form></body># 访问地址:http://localhost:8080/indexhttp://localhost:8080/movie/index


参考资料

  • Python 全栈

Django 框架之 URL

原文地址:https://www.cnblogs.com/linkworld/p/8683164.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved