多语言展示
当前在线:992今日阅读:145今日分享:43

django下模板页面的跳转是url写法

本篇主要是介绍django开发web项目是,url路径跳转的问题。比如说你正在做一个web项目,有许多页面,而这些页面之间必然要相互跳转,这是后就出现问题了。如何在模板页面写这些路径呢?是用相对那个路径“../../you_url/”吗?还是用绝对路径“http://127.0.0.1:8000/url/”呢?看下文。
工具/原料
1

假设你已经搭设好了django的开发环境,没有搭建好的话先搭建环境。

2

火狐,IE,谷歌浏览器一个。

方法/步骤
1

直接写上相对路基会出现下面的情况:点击首页一次的路径:“http://localhost:8000/login_again/”,在点击一次:“http://localhost:8000//login_again/”,点击第三次:“http://localhost:8000///login_again/”看见了吗,login_again前面的“/'在增加,这就是写相对路径惹来的后果。其实我是想在点击首页是无论在哪一个页面点击,路径都是”http://localhost:8000/login_again/“,之所以出现这样的问题是因为写了相对路径“../../”之内的。如果你点击了某个页面”http://localhost:8000/params/1/2/3/4/“,在这个路径下你在点击首页,假设首页的url配置是:”url(r'^login_again/$',login_again),“,这是就会出现找不到路径的问题。你过你想找到路径,那你必须在点击首页时调到出去,就需要一直写”../../../../../“5个才能调到”http://localhost:8000/“,这是跟上你的“login_again”才能正确请求。但是每个页面的情况不可能都完全一模一样,到底要跳转几次,写几次“../”呢?在jsp页面有有一个basePath的,我想在django中有没有类似的,这样的话每次就不用那么麻烦了,直接在'<%=basePath%>'后面加上你要请求的URL就行。

2

经过看文档找到了这个标签:模板中的url标签。写法为“{% url 'path.to.some_view' v1 v2 %}”,v1,v2为some_view方面的参数,some_view就是处理你请求的方法名。这样的话就可以在模板页面获取主机路径如“http://localhost:8000/'相当于jsp中的bsaePath。后面跟上您要处理的方法名即可,尽量写全你方法所在的模块的全路径。

3

url标签还有另一种写法:{% url 'path.to.view' arg arg2 as the_url %},相当于重命名,然后你在需要的地方{{the_url}}就可以引用上面的路径。

4

这里有一个小问题要注意一下:url标签不接受不带参数的方法,我亲测没有参数的方法一直报错,然后加了一个没有时间意义的参数就报错,正常运行。如果你有一个没带参数的方法,想在url标签中引用它,那么认为把这个无参数的方法变成带一个无用参数的方法,这先在传值时任意指定一个参数即可运行。

5

如下面这是我写的一个登出的url:'{% url 'exam_platform.views.loginOutOut' 1 %}'后面的参数”1“是没有意义的。loginOutOut函数定义 def loginOutOut(req,nothing):pass。

6

总之一个句话:个人感觉url就相当于jsp中定义的'basePath',就这样用,多个页面跳转是才没有问题。

推荐信息