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('同城页面')
页面效果
每一个列表同时又是链接,点击可跳转到对应的页面。