单击按钮后加载新页面(不重复)

时间:2013-05-10 19:21:01

标签: javascript html django xmlhttprequest

我正在开发一个网络应用程序(用于学习目的),我坚持如何在点击特定按钮后加载另一个页面

我正在使用django 1.4.5 web框架和python 2.7.4 我已经设计了所有的html页面和javascript和css文件。

我不知道HttpRequests。我学习了各种教程,我遇到了这三种方法。

1)

xhr = new XMLHttpRequest();
xhr.open("GET","screen2/",false);
xhr.send(null);

2)

location.href="/screen2/"

3)

window.open("/screen2/","_parent");

所有'em都保留在函数setup()中,按钮的onclick设置为onclick="setup()"

是的,我评论他们只保留其中一个“活着”。

django urls.py文件:

urlpatterns = patterns('',
    url(r'^screen1/$',screen1),
    url(r'^screen2/$',screen2),
)

django views.py文件

def screen1(request):
    f = open(r"mysite/frontend/1st screen.html",'r')
    html = f.read()
    return HttpResponse(html)

def screen2(request):
    f = open(r'mysite/frontend/2nd Screen.html','r')
    html = f.read()
    return HttpResponse(html)

第二种和第三种方法起作用的第一种方法没有。我不明白为什么。

另外,如何使用请求发送相应的脚本和css文件?

1 个答案:

答案 0 :(得分:1)

第一个是使用javacript发出ajax请求。响应包含在javascript中。其他2个正在更改网页的位置(网址)。

此外:Django提供了一个完全包含的模板引擎和模板加载器,它可以为您包装所有模板。您不必手动打开文件并读取其内容并将其作为字符串返回,如下所示:

def screen2(request):
    f = open(r'mysite/frontend/2nd Screen.html','r')
    html = f.read()
    return HttpResponse(html)

django tutorial提供了如何使用内置函数的djangos渲染模板的简要

我假设您没有进行任何配置来提供静态文件(如何使用请求发送相应的脚本和css文件?)。 Django提供了如何执行此操作的示例here