未知基、周知のグルーピング、逆解析、ルート分布、FBVとCBV
未知のパケット(位置パラメータが自動的に対応するビュー関数に渡され、コンテンツに括弧内正規表現マッチング)
URL(R&LT ' ^テスト/(\ + D)/ '、views.test)、 #は、1つ以上のデジタルと一致します デフテスト(要求、XXX): プリント(XXX) のリターンはHttpResponse(' テスト' )
既知パケット(キーパラメータとしてコンテンツへの括弧内の正規表現マッチングは自動的にビューに対応する関数に渡されます)
URL(R&LT ' ^テスト/(?P <年> \ + D)/ '、views.test)、 #は一致する1つまたは複数のデジタル デフテスト(要求、年): プリント(年) のリターンはHttpResponse(' テスト')
注意:無名のグループと有名なグループと混同することはできません!!!
URL(R '^テスト/(
\ dは+)/(?P <年> \ D +)/'、views.test) のマッチング形式の複数種類のことではなく、サポート
複数のグループ名も無き URL(R ' ^テスト/(\ dは+)/(\ dは+)/ ' 、views.test)、 複数の有名なグループ化 URL(R ' ^テスト/(?P <年> \ D +)/(?P <XXX> \ D +)/ '、views.test)、
逆解析:(動的に対応するパス名に従って得られます)
django.shortcuts インポート逆 URL(R ' ^ index6668888 / $ '、views.index、名前= ' インデックス' ) #各ビュー機能と名称対応関係にルーティングすることができます #の一意に対応するパスを識別するという名 #のこの名前が一意を複製することはできませんが フロントエンド {%URL ' インデックス'%} {%のURL 「エイリアス関係からビューへのルーティング機能に相当することができ」%} バックエンド (逆に「インデックス」) リバース(「あなたは、対応関係の別名からのルーティング機能を表示するには」)
不明なパケット逆引き参照
URL(R ' ^テスト/(\ dは+)/ '、views.test、名前= ' リスト' )
バックエンド 印刷(逆(' リスト'、引数=(10 ))、)
フロントエンド {%URL ' リスト' 10%} user_list = models.User.objects.all()
URL(R ' ^編集/(\ dは+)/ '、views.edit、名前= ' 編集' )
フロントエンドのテンプレート構文 {%ため USER_OBJ で user_list%} <a href= 'edit/{{ user_obj.pk }}/'> </a>の {%ENDFOR%} ビュー機能 django.shortcuts インポート逆 デフ編集(リクエスト、edit_idを): URL =リバース(' 編集'、引数= (edit_id、)) テンプレート {%のURL ' 編集' edit_id%}
有名なのは逆引き参照をグループ化します
バックエンド #後、既知および未知のパケットは、このフォーム内のパケットである プリント(リバース(「一覧」、引数=(10 )))
#以下を理解することができる プリント(リバース(「一覧」、kwargsから= { 「年」:10 }))
フロントエンド
#のこの形態において、遠位既知パケットおよび未知のパケットを使用することができる {%のURL 「一覧」 10%} #以下が分かる {%のURL 「一覧」年= 10%}
要約:逆引き参照のために制服を採用するパケットフォーマットの有名な匿名のパケット
バックエンド 逆(「リスト」、引数=(10)) #デジタルデータは、通常、主キー値である 先端 {%のURL 「一覧」 10%}
#逆解析の性質は:ビュー機能に対応する名前へのアクセスを得られます
ルートの配布
各アプリ以下Djangoは独自のurls.pyルーティング層を持つことができ、テンプレートフォルダ、静的フォルダ
プロジェクト名urls.py(全ルート)機能ルーティング関係の観点と一致していないが、分布をルーティングするか
から django.conf.urls インポートを含みます
#ルート流通経路は常に$終わらないことをルート配布注
URLを(R ' ^ app01 / 'が、(app01_urls)が含まれます)
URL(R ' ^ app02 / ' が含まれる(app02_urls))
#アプリケーションの新urls.pyファイル、ファイルにルーティングし、ビュー機能間の書面による対応が可能
と django.conf.urls インポートURL
から app01 インポートビュー
urlpatterns = [
URL(R ' ^インデックス/ ' 、views.index)
]
FBVとCBV
FBV(関数ベースビュー)の 閲覧要求に処理機能を使用することです。
urls.py
django.conf.urls インポート、URLを含める #django.contribインポート管理者からの からのMyTest インポートビューを urlpatterns = [ #のURL(R '^管理/'、admin.site.urls)、 URL(R '^インデックス/ '、views.index)、 ]
views.py
django.shortcuts インポートレンダリング DEF 指数(REQ): もし req.method == 'POST': 印刷( 'メソッドがある:' + req.method) のelif req.method == 'GET': 印刷( 'メソッドがある:' + req.method) リターンは(reqは、 'index.htmlを')をレンダリング
CBV(クラスベースビュー)の 閲覧要求の処理に使用されます。
urls.py
以下からのMyTest インポートビュー urlpatterns = [ #のURL(R '^インデックス/'、views.index)、 URL(R '^インデックス/ '、views.Index.as_view())、 ]
注:URL(R '^インデックス/'、views.Index.as_view())、固定用法です。
views.py
django.views インポート見ます クラスインデックス(ビュー): デフ(自己、REQ)を取得: プリント( 'メソッドがある:' + req.method) リターンは(reqは、 'index.htmlを')をレンダリング デフ投稿(自己、REQ): プリント( 'メソッドがある:' + req.method) リターン(reqは、 'index.htmlを')レンダリング
注:このクラスは、ビューを継承する必要があり、クラスの関数名は小文字にする必要があります。