Django之URL路由
1.URL配置
基本格式 :
HttpResponse # 返回的是字符串
render #模板渲染 模板就是html页面 渲染就是字符串替换
在Django2中:
from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
re_path('^index/', views.index),
]
- 正则表达式:一个正则表达式字符串
- views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
示例
urls.py
from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
re_path('^login/',views.login), #路径分发 不区别请求方法
]
views.py
from django.shortcuts import render ,HttpResponse
# Create your views here.
def login(request):
print('请求方法',request.method)
if request.method == 'GET':
return render(request,"login.html")
else:
print(request.POST) #{'username': ['zbb'], 'pwd': ['222']}>
name = request.POST.get("username")
pwd = request.POST.get("pwd")
if name == 'zbb' and pwd == '123':
return HttpResponse("登录成功")
else:
return HttpResponse("登录失败")
login.html
# 'django.middleware.csrf.CsrfViewMiddleware', #注释才能接收post
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>追梦NAN变成了大叔</h1>
<form action="" method="post">
用户名:<input type="text" name="username">
密码: <input type="text" name="pwd">
<input type="submit">
</form>
</body>
</html>
2.正则表达式
分组命名匹配
request #request 后面跟着分组正则里面的参数
urls
from django.contrib import admin
from django.urls import path,re_path
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
re_path('^login/',views.login),
# 无名分组参数
re_path('article/(\d+)/(\d+)/',views.article), #位置传参
#有名分组参数
re_path('dd/(?P<xx>\d+)/(?P<oo>\d+)/',views.dd)
#是关键字传参
]
views
def article(request,year,moth):
return HttpResponse(year+"年"+moth+'月')
def dd(request,xx,oo):
return HttpResponse(xx+oo+'月')
#第一个参数必须是request,后面跟的三个参数是对应着上面分组正则匹配的每个参数的
访问
http://127.0.0.1:8000/article/1/2/
http://127.0.0.1:8000/dd/1/2/
热爱技术,享受生活,感谢推荐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?