django框架中URL使用
以下是mysite/url文件中的内容:
from django.conf.urls import include, url from django.contrib import admin urlpatterns = [ url(r'^admin/', include(admin.site.urls)), url(r'^$',include('pos.urls')), url(r'^item/',include('pos.urls')), ]
以下是pos/url文件中的内容:
from django.conf.urls import url from . import views urlpatterns = [ url(r'^$', views.page , name='page'), url(r'^item/$', views.item , name='item'), ]
以下是views.py文件中的内容:
from django.shortcuts import render,redirect def page(request): return render(request, 'pos/homepage.html' , {}); def item(request): return render(request, 'pos/item.html' , {} );
以下是js文件中的内容:
function changerurl (){ window.location.href = 'http://127.0.0.1:8000/item/' };
本菜练习的POS机网页已经进入中期,而在前期无意中的一个错误浪费了很多时间。
在URL文件中通过正则表达式的设置,可以前往其他网址,但是django框架下有两个URL文件,一个是框架建立时自动生成在 mysite 目录中的 urls.py(A) 文件,另一个是在用户建立的应用中自己创建的 urls.py(B) 文件。
A 文件中的url方法引导在网页地址栏输入的内容,经过匹配之后去往哪一个文件调用内容,在我的练习项目中就是应用 POS 下的 B 文件,【指引语句:url(r'',include('pos.urls'))】
PS:django框架中自带关于 admin 的URL,url(r'^admin/',include(admin.site.urls)),这条语句会让所有admin开头的URL请求到制定的view文件中去,也就不再需要逐一进行设定。
本菜出现的问题就在于,为列表按钮添加点击事件和跳转方法【方法中的函数为 js 文件内的函数内容,html文件中button标签添加的属性为onclick=‘changeurl()’(同时战友们使用的标签属性是onclick=‘location’=‘URL内容’)】,但是问题出现在本菜点击按钮之后,网址栏出现的是期望的URL,但是页面却还是之前的页面,渲染的文件出现了错误,本菜开始时删去mysite的最后一行,结果无法继续跳转,其余还有增添改删了很多种url的正则表达式,但是全部失败。
直到后来教练才发现了我错在哪里,当他在网址栏输入 http://127.0.0.1:8000/item/item 后正确跳转,于是本菜在一脸懵的状况下尝试两种修改后删掉了 mysite 中添加的 url 语句的美元符号,终于正确跳转了。
依我愚见,应该是在mysite的url文件中加上美元符号就表示一个网页URL的新建,若是想在原来的urls基础上添加后续应该去掉美元符号,给它继续增加的空间,于是在POS的urls文件中直接添加最初urls后面想跟的内容就可以在期望的网址中调出渲染后的相应文件。
简单来说pos中的正则式内容是跟在mysite中的urls正则式内容后面。
另外战友们的方法,会导致每次点击之后在当前页面的页面之后直接添加语句中url正则式的内容,之后找到的更该方法是在正则式内容前加上“/”就能正确跳转。
PS:window.history.go() 可以设置跳转已访问过的页面,负数表示之前第几个访问的页面,设置 ‘ 零 ’ 就可以实现刷新当前页面的功能