URLをルーティングDjango--

1. URLは何ですか?

  Djangoのディレクトリサイトのサポートなど。その本質は、URLとあなたがそのビュー機能を呼び出したいURLとの間のマッピングテーブルであり、あなたはDjangoの、ロジック・コード実行の該当期間を呼び出すURLに送信されたクライアントに伝えるようにしています。

図2に示すように、単純なルーティング構成

django.conf.urlsがインポートURLを含む


から app01 インポートビュー
urlpatterns = [ 
    URL(R ' datatimes /(\ dの{4})/(\ dの{2})$ ' 、views.year_pipei)
]
  • URLから値をキャプチャするには、あなたはそれを囲む括弧のペアを配置する必要があります。
  • 各URLを持っているので、リードバックスラッシュを追加する必要はありません。例えば、それはする必要があります^articles 代わりに  ^/articles
  • 「R」の前に、各正規表現は任意ですが、追加提案しました。これは、文字列が「原始的」であることはPythonを伝えます - 文字の文字列をエスケープすべきではありません

図3に示すように、よく知られている基

  上記の例では、URLの値とビューに渡された位置パラメータを捕捉するために(括弧で)単純な正規表現名前グループを使用します。より高度な使い方では、ビューに渡されるURLとキーワードパラメータの値をキャプチャするために名前の正規表現のグループを使用することができます。

Pythonの正規表現では、正規表現の構文グループ名は(?P<name>pattern)、どこname のグループの名前で、pattern マッチするパターンです。

ここでは上記の名前のグループのURLconf書き換えを使用しています。

django.conf.urls インポート、URLが含まれる


から app01 インポートビュー
urlpatterns = [ 
    URL(R ' datatimes /を(?P <年> \ D {4})/(?P <月> \ D {2})$ ' 、views.year_pipei)
]

  キャプチャされた値の代わりに関数のパラメータを表示するための位置パラメータ転送のキーとして:この実装では、唯一の微妙な違い前の例と同じです。例えば:

  /記事/ 2005/03 /要求の呼び出しは(要求、年= '2005'、月= '03 ')機能の代わりにviews.month_archive(リクエスト、' 2005 '' 03「)をviews.month_archive。

4、流通

  プロジェクトは、複数のアプリを持っている場合、どのように我々は、実行するアプリケーションのルートを決定するのですか?だから我々は、分布のルートを使用し、我々はurls.py各アプリでファイルを作成し、グローバルurls.py内に記述する必要があります。

django.conf.urls インポートURLが含ま
 から django.contribのインポートADMIN
 から app02 インポートビュー   以下の二つのビューをアプリケーションに導入される場合には、上記カバーする


urlpatternsの = [ 
    URL(R&LT ^ ADMIN / 、 admin.site.urls)、
    URL(R&LT ' ^ app01 / '、(含める' app01.urlsを'))、 app01を開始経路を指す、views.py app01の中に分布される 
    R&LT(URL ' / ^ app02 'ザは、(含ま' app02.urls ' ))、
]

  我々はurls.pyで行わapp01のapp01の先頭をルーティングすることによって対処することができるように、urls.py.実行中app02はapp02を開始するアドレスをルーティング

5、逆解析

   テンプレートに次のコードをlogin.htmlと:

<フォームアクション= " /インデックス/ "メソッド= " ポスト" > 
        用户名の<input type = " テキスト"名前= " ユーザー" > 
        密码の<input type = " パスワード"名前= " PWD " > 
        の<input type = " 提出" >

  これは、トリガー・イベントの後、インデックスページのルートにジャンプしますが、ルートのインデックスが変更された場合、ここで使用することはできませんし、ここで、通常のルートを実行するために変更する必要があり、その後、非常に面倒であることは明らかである我々解析を逆にする必要性、

  urls.pyではname属性内のルーティングに追加します。

URL(R 'インデックス'、views.login、名前= ' XXX '

  次のように読むためのテンプレートを与えます。

<フォームアクション= " {%URLは% 'XXX'} "メソッド= " ポスト" > 
        用户名の<input type = " テキスト"名前= " ユーザ" > 
        密码の<input type = " パスワード" NAME = " PWD " > 
        <入力タイプ= 提出 >

  だからかかわらず、将来の変更ルーティングインデックス形式の、そしてより多くのテンプレート名に渡されます、これが逆引きです。

おすすめ

転載: www.cnblogs.com/490144243msq/p/11570026.html