django框架中URL使用

谢育政 2017-03-17

以下是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() 可以设置跳转已访问过的页面,负数表示之前第几个访问的页面,设置 ‘ 零 ’ 就可以实现刷新当前页面的功能

相关推荐

inspuryhq / 0评论 2020-07-28