普通的url-->函数
urls.py:
from django.contrib import admin
from django.http import HttpResponse
from django.urls import path
def index(request):
return HttpResponse('index')
urlpatterns = [
path('admin/', admin.site.urls),
path('index/',index),
]
有传递参数的url
from django.contrib import admin
from django.http import HttpResponse
from django.urls import path,re_path
def add(request,a1):
return HttpResponse(a1)
def add2(request,name,id)
return HttpResponse(id)
urlpatterns = [
path('admin/', admin.site.urls),
#django2以上版本,使用正规则要用re_path, 之前的版本使用url
re_path('add/(\w+)',add),
#一样功能
#path('add/<name>',add),
re_path(r'^add2/(?P<name>\w+)/(?P<id>\d+)/$',add),
#path('add2/<name>/<id>/',add2
]
路由分发
使用include
from django.contrib import admin
from django.http import HttpResponse
from django.urls import path,re_path,include
import app
from app import views
def default(request):
return HttpResponse('404')
def add(request,name,id):
return HttpResponse(id)
urlpatterns = [
path('admin/', admin.site.urls),
path('app/',include('app.urls')),
]
再然后在app下建立urls.py,并导入views,再views下定义函数
from django.urls import path,re_path
from app import views
urlpatterns = [
path('index.html',views.index),
]
from django.http import HttpResponse
from django.shortcuts import render
def index(request):
user_list=[
'tom',
'jimmy',
'mary'
]
return render(request,'index.html',{'userlist':user_list})
接受传递的参数
#表单post请求提交数据,根据name名获得value
request.POST.get('xxxx')
#url参数 /add/1/
request.GET.get('xxx')
别名和反向解析
template:使用url标签
py:使用from django.urls import reverse()函数
视图函数中:reverse()
#urls.py
from django.contrib import admin
from django.http import HttpResponse
from django.shortcuts import render
from django.urls import path, re_path, include, reverse
def login(request):
print(reverse("LOG"))
if request.method=='GET':
return render(request,'login.html')
else:
user=request.POST.get('user')
pwd=request.POST.get('pwd')
if user=='tom' and pwd=='123':
return HttpResponse('success')
else:
return HttpResponse('failure!')
urlpatterns = [
path('admin/', admin.site.urls),
#####定义别名
path('login/',login,name='LOG')
]
#login.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登录验证</title>
</head>
<body>
###使用url标签
<form action="{% url 'LOG' %}" method="post">
用户名 <input type="text" name="user">
密码 <input type="password" name="pwd">
<input type="submit"value="submit">
</form>
</body>
</html>