0

私はdjangoを初めて使用し、djangoのURLパターンマッチングの使用方法について少し混乱しています。

これが私の意図です。私はウェブサイトに4ページあります。リンクに応じて、URL を使用して、ユーザーに表示する情報を見つけます。また、URL は、ユーザーがどのページにいるかを認識します。

そのため、人はリンクに基づいて建物を選択します。次に、その人は行きたいフロアを選択します。最後に、その人は部屋を選びます。

元。形式: aaa.com/建物名/階数/部屋番号

step0 aaa.com/

step1 aaa.com/django/

step2 aaa.com/django/2/

step3 aaa.com/django/2/201

したがって、URL パターンに基づいて、Web サイトは毎回異なる方法でロードされるはずです。

これは、URL パターン マッチングを使用する方法ですか? 私は本当にこれについて助けてもらいたいです。URL パターンはどのように見えるべきですか? 今のところ、私が考えることができるのは、ビューを持つさまざまなアプリに URL を一致させることだけです。それらをすべてリンクする方法がわかりません。

そして、建物、フロア、および部屋番号を含む MySQL データベースがあります。

よろしくお願いします。あなたの努力に感謝します。

4

2 に答える 2

1

次のように、さまざまなビューを指す URL パターンを定義します。

urlpatterns = patterns('your_app.views', 
                   (r'^/(?P<building_name>\w+)/$','function1'),
                   (r'^/(?P<building_name>\w+)/(?P<floor>\d+)/$','function2'),
                   (r'^/(?P<building_name>\w+)/(?P<floor>\d+)/(?P<room>\d+)/$','function3'),
                   )

このパターンを使用すると、異なるビューが呼び出され、各ビューで異なるテンプレートを使用できます。または、同じビュー関数を使用して、URL で使用可能な値を確認し、必要なテンプレートをレンダリングする場合。次のように、ビューで URL 値を取得できます。

def function1(request, building_name = None):
    print building_name

他のビューについても同様に行います。

于 2012-10-17T06:37:25.707 に答える
1

それらを同じビューで処理したい場合は、引数を同じビューに渡すことができます。

r('/(?P<building>\w+)/','views.view1')
r('/(?P<building>\w+)/(?P<flat>\w+)/','views.view1')
r('/(?P<building>\w+)/(?P<flat>\w+)/(?P<room>\w+)/','views.view1')

あなたの見解、

def view1(buidling="",flat="",room=""):
 return []
于 2012-10-17T06:38:18.813 に答える