0

(学習目的で) Web アプリケーションを開発していますが、特定のボタンがクリックされた後に別のページを読み込む方法に行き詰まっています。

私はPython 2.7.4とともにdjango 1.4.5 Webフレームワークを使用しています。私はすでにすべてのhtmlページとjavascriptおよびcssファイルを設計しています。

HttpRequests についてはわかりません。そして、さまざまなチュートリアルを調べて、これらの 3 つの方法に出会いました。

1)

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

2)

location.href="/screen2/"

3)

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

それらはすべて関数内に保持されsetup()、ボタンonclickはに設定されていますonclick="setup()"

はい、一度に 1 つだけを「有効」にするためにコメントアウトします。

ジャンゴ urls.py ファイル:

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

ジャンゴの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)

2 番目と 3 番目の方法は、最初の方法では機能しません。理由がわかりません。

また、対応するスクリプトと css ファイルをリクエストとともに送信する方法は?

4

1 に答える 1

1

1 つ目は、javacript を使用して ajax リクエストを行うことです。応答は javascript に含まれています。他の 2 つは、Web ページの場所 (url) を変更しています。

さらに: Django は、完全に含まれたテンプレート エンジンと、テンプレートのすべての読み込みをラップするテンプレート ローダーを提供します。以下で行っているように、ファイルを手動で開いてその内容を読み取り、文字列として返す必要はありません。

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

djangoチュートリアルでは、django の組み込み関数を使用してテンプレートをレンダリングする方法の例を提供しています。

静的ファイルを提供するための構成を行っていないと仮定しています (対応するスクリプトと css ファイルを要求と共に送信する方法は?)。Django は、ここでこれを行う方法の例を提供しています

于 2013-05-10T20:02:07.900 に答える