django学习之三django URL name 详解
django学习之三django URL name 详解
1.说明:当项目需要更换url地址时,往往会因为某些功能在模板文件中写死了url路径,导致更换url地址后找不到对应的资源,因此使用URL name 方法,修改url时必须保持URL name不变,这样增强了代目的可移植性。
2.项目要求:
①当需要修改url时,只需要修改urls.py文件就行了,不需要修改其他代码
②当修改url后,用户浏览器原有的书签还是以前的url地址,需要点击访问旧的地址自动跳转到新的url地址,使用户访问正常
3.项目结构
4.编辑代码templates/home.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>陈建文的学堂</title> </head> <body> {% url 'jisuan' %} ##引用URL name <a href="{% url 'add2' 4 5 %}">计算 4+5</a> ##定义链接内容 </body> </html>
5.编辑代码learn/views.py
# -*- coding: utf-8 -*- from django.http import HttpResponse from django.shortcuts import render from django.http import HttpResponseRedirect from django.core.urlresolvers import reverse #打印信息 def index(request): return HttpResponse(u'<h3>欢迎来到陈建文的学习基地!') #计算方法1 def add1(request): a = request.GET['a'] b = request.GET['b'] c = int(a)+int(b) return HttpResponse(str(c)) #计算方法2 def add2(request,a,b): c = int(a)+int(b) return HttpResponse(str(c)) #计算方法整合模板 def jisuan(request): return render(request,'home.html') #新旧url地址跳转 def old_add2_redirect(request,a,b): return HttpResponseRedirect(reverse('add2',args=(a,b)))
6.编辑代码/urls.py
from django.conf.urls import url from django.contrib import admin from learn import views as learn_views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^$',learn_views.index), url(r'^add1/$',learn_views.add1,name='add1'), url(r'^add2/(\d+)/(\d+)/$',learn_views.add2,name='add2'), url(r'^jisuan/',learn_views.jisuan,name='jisuan'), url(r'^old_add/(\d+)/(\d+)/$',learn_views.old_add2_redirect), url(r'^new_add/(\d+)/(\d+)/$',learn_views.add2,name='add2') ]
7.运行程序:python manage.py runserver 0.0.0.0:8000
8.检验结果
URL地址:
项目要求①,url ‘jisuan’ 可以随意更改
项目要求②,实现新旧地址跳转
===================大功告成===================
===================QQ1071179133===================
一些事情一直在干,说不定以后就结果了呢
本文来自博客园,作者:chenjianwen,转载请注明原文链接:https://www.cnblogs.com/chenjw-note/articles/7227482.html