0

私は単一ページ Web アプリの設計段階にあり、ユーザーがフォーマットされた URL をクリックしてデータ要求がページに読み込まれるようにしたいと考えています。

たとえば、 の URL は、関連するデータを含むビューをhttp://www.mysite.com/?category=some_catトリガーします。Category

私の意図は、URL を解析してデータを収集し、それを index.html テンプレートに渡してページの読み込み時にレンダリングすることです。ページがロードされると、Javascript トリガー設定が適切なボタンをトリガーして、クライアント ビューをロードします。

ただし、次の設定が上記の URL の例と一致しないため、URL パーサーの設定に問題があります。

from app.views import app_views, photo_views, user_views, admin_views

urlpatterns = patterns("",
    url(r'^/(?P<category>\d+)/$', app_views.index)
)
4

1 に答える 1

1

GET を使用して URL を介して情報を送信することと、ビュー関数の引数を使用して URL をフォーマットすることを混同しています。というサイトにアクセスしhttp://www.mysite.com/ていて、ページに次のようなフォームがあるとします。

<form>
<input type='text' name='category' id='category'></input>
<button type='submit'>Send!</button>
</form>

クリックすると、URL が自動的に に変わりhttp://www.mysite.com/?category=<value of input>ます。以降の?すべてを GET データとして処理する必要があることを示すマークで、構文は<id>=<value>. その後、次のようにアクセスできます。

def response(request):
    category = request.GET['category']

url の一部であるパターンを探すことを意味するため、url のフォーマットは異なります。つまり、次のようなパターンがr'^/(?P<category>\d+)/$'これを探します:そして、次のように追加の引数http://www.mysite.com/<category>/としてビューのリクエストに送信します:

def response(request, category):
    ...

正規表現は、URL のその部分を認識する方法を定義するために使用されます。たとえば、\d+使用している は、カテゴリが数値である必要があることを意味します。ニーズに応じてさまざまなタイプのパターンを定義する方法を検索できます

GET を使用すると、現在アクセスしているページをレンダリングしたのと同じビュー関数にデータを送信していることに注意してください。一方、別の URL を使用すると、urls.py (通常は別の関数) を介してどこに移動するかを指定することになります。それは物事を少し明確にしますか?

于 2013-10-06T14:21:32.443 に答える