参考
需要完成以下任务
- 访问http://127.0.0.1:8000/ 返回"hello maotai"或home.html
- 访问http://127.0.0.1:8000/add/?a=1&b=2 返回之和
- 访问http://127.0.0.1:8000/add2/2/3 返回值和
- 访问http://127.0.0.1:8000/add2_v2/2/3 跳转到add2,并返回之和
项目代码实现
views.html书写
views.html
#### 返回字符串
def index(request):
return HttpResponse("hello maotai")
#### url参数 ?a=1&b=2 方式传参
def add(request):
a = request.GET['a']
b = request.GET['b']
c = int(a) + int(b)
return HttpResponse(c)
#### url参数/2/3 方式传递
def add2(request, a, b):
c = int(a) + int(b)
return HttpResponse(str(c))
#### 重定向到add2, url的cname
#### 模板解析也用到了reverse函数,解析谁? 解析html,将解析到的结果返回
def add2_v2(request, a, b):
return HttpResponseRedirect(reverse('add2', args=(a, b)))
#### 返回html
def home(request):
return render(request, "home.html")
urls.py
urlpatterns = [
path('', views.index),
path('home/', views.home),
path('add/', views.add),
path('add2/<int:a>/<int:b>', views.add2, name='add2'),
path('add2_v2/<int:a>/<int:b>', views.add2_v2, name='add2_v2'),
path('admin/', admin.site.urls),
]
home.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>home</title>
</head>
<body>
<!-- url写死 -->
{#<a href="/add2/2/3">add 2+3 </a>#}
<!-- url写活 最终解析/add2/4/5 -->
<a href="{% url 'add2' 4 5 %}">add2 4+5 </a> <br>
<a href="{% url 'add2_v2' 4 5 %}">add2_v2 4+5 </a>
</body>
</html>