django模板-通过a标签生成链接并跳转

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>    <!--style中的两行使得列表横向显示,并且去掉了前面的·标识-->
        .nav{overflow:hidden}
        .nav li{float:left;list-style:none;margin:0 20px; }
    </style>
</head>
<body>
  <ul class='nav'>
      <li><a href='/'>首页</a> </li>
      <li><a href={% url 'book' %}>读书</a></li>
      <li><a href={% url 'movie' %}>电影</a></li>
      <li><a href={% url 'city' %}>同城</a></li>
      <li><a href={% url 'detail' book_id=8 catagory='health' %}>最火的文章</a></li>
      <li><a href={% url 'login' %}?next=/>登录</a></li><!--注意参数传递的?next与前面没有空格-->
  </ul>
</body>
</html>

urls.py

注意在views.py中使用{% url 'xxx' %}标签时时,xxx指的是url名称,需要在urls.py中通过name指定url名称。

from . import views
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',views.index,name='index'),
    path('book',views.book,name='book'),
    path('movie',views.movie,name='movie'),
    path('city',views.city,name='city'),
    path('book/book_detail/<book_id>/<catagory>',views.book_detail,name='detail'),
    path('login/',views.login,name='login')
]

views.py

from django.shortcuts import render
from django.http import HttpResponse

def index(request):
    context={}
    return render(request,'index.html',context=context)

def login(request):
    next=request.GET.get('next')
    text='登录页面,登录完成后要跳转的url是%s'%next
    return HttpResponse(text)

def book(request):
    return HttpResponse('读书页面')

def book_detail(request,book_id,catagory):
    text='您获取的图书id是%s,分类是%s'%(book_id,catagory)
    return HttpResponse(text)

def movie(request):
    return HttpResponse('电影页面')

def city(request):
    return HttpResponse('同城页面')

页面效果

每一个列表同时又是链接,点击可跳转到对应的页面。

原文地址:https://www.cnblogs.com/Forever77/p/10129294.html