1.最も簡単なルートの設定
DjangoのディレクトリサイトのサポートなどのURLの構成(のURLconf)。その本質は、URLとあなたがそのビュー機能を呼び出したいURLとの間のマッピングテーブルであり、あなたはDjangoの、ロジック・コード実行の該当期間を呼び出すURLに送信されたクライアントに伝えるようにしています。
1.1
例1:
ステップ1:
urls.py書か
urlpatterns = [ パス(' 管理/ ' 、admin.site.urls)、 パス(' 記事/ ' 、views.articles) ]
書き込み要求はviews.pyに応答オブジェクトに返されます
DEFの記事(要求): 印刷する(" 記事ページ" ) を返す(はHttpResponseを" 記事ページ")
概要:上記のバックパラメータを指定せずにURLをせずに、この最も基本的なものです。
URLの死者を書くために1.2パス法
urls.py書か
パス(" 記事/ 2009 / "、views.articles)、
アクセスは次のようになります。
元記事/ルーティング情報を変更するには役に立ちません。
1.3re_path
re_pathと、上記URL符号化されたパスを解決するために#
目的:定期的に書き込むために、コードの冗長性を減らすために
#記事パラメータに必要な受け入れ
のパラメータ関数を受け入れるで書かれた#のurls.pyファイルを、artclesの必要が
re_path( "^記事/([ 0-9] {4})/ $"、views.articles1)、# 不明にパケットの
要約、受け入れるように、ビュー内の関数のパラメータを記述する必要
([0-9] {4})/ $パラメータは、アウト一致します
次に、ビューのパラメータ#を追加します。
記事DEF(リクエスト、Y):
印刷する(「記事ページ」)
はHttpResponseを返す(「記事ページ」)
結果は以下の通りである:
概要:入力のurl複数の正規満たすために、このような方法で実現することができます。
#記事は、二つの許容可能なパラメータが必要です
コード#1のURLを:
re_path(R&LT "記事^ /([0-9] {}。4)/([0-9] {2})/ $"、views.articles)、位置パラメータによってグループ化された#1未知パラメータは、物品の後ろに順次記事は、関数ビュー渡す
#ビューのコードを:
記事DEF(リクエスト、Y、M):
印刷する( "記事ページ"、y軸、m)は
( "記事ページ")はHttpResponseを返します
pycharmコンソールは、コードをプリントアウトします:
/記事/背後/ 12分の2019 /などのパラメータによって取得された#2
$ ## ^との使用に注意してください
1.4 URLとre_pathあなたが定期的にルールを一致させたい場合は死者を制限するために、カードに内部パスを^の使用を必要とし、$(正確に一致する必要があります)
1.5
1 。自動制限を含めて良いパッケージ、内部のパスは、ルール 2. URLなしパッケージを、手動で(re_path法による)は、正規のルールを追加する必要があります
前とURLパラメータがアクセス可能/ dsdarticles /アクセスされた後にプラス#へ/記事/あなたが定期的に一致させる必要性に自分の言葉を書きたい場合SDADは、カードにアクセスすることができます
カード死んでいるパス内の#の前後、
同じURLとre_pathです
URLのコード:
URL(「記事/」、views.articles_url)、
コードを見て:(上記の2例は、パラメータヘクタールではありません)
articles_url DEF(要求):
印刷する( "記事ページ")
("記事ページ")はHttpResponseを返します
1.6匿名グループは、上記参照します
位置パラメータ渡すことによって、
1.7有名なグループ(キーワードパラメータを渡すことによって)
##(1)ビューで関数にパラメータを渡す / 2019
url.pyコード:
re_path( "^記事/(? P <年> [0-9] {4})/ $"、views.articles1)、#の知られているパケットは、
ビューの機能:
処理受信したURLの機能:articles1:
articles1 DEF(リクエスト、年):
印刷する( "111ページの記事"、年)
はHttpResponseを返す( "ページ1111上の記事")
##(1)クライアントのURLパラメータの処理は、参照パラメータがキーワード送信パラメータ渡して、2です。
urls.pyファイルのコード:
re_path(R&LT "の記事^ /(?P <年> [0-9] {}。4)/(?P <月> [0-9] {2})/ $"、views.articles)、
#の星ジョブ機能で記事の月と年に書かれなければならないキーワードは、URLパラメータは2人の質量参加中の記事に渡されます。
コードを見て:
記事DEF(リクエスト、月ザ・年):
印刷する(「記事ページ」、年、月ザ・)
リターンはHttpResponse(「記事ページ」)
1.8
端的に言えば、それは顧客、あなたがラインの内側に、判決を受け入れ、返す入力の品種です。、我々は内部的に対処する必要がある顧客の入力/記事/パラメータ/ラインの形では、パラメータ(よく知られている点の組み合わせを(引数を渡すURLで定義された主要なパラメータである必要があります受け入れます
対応する関数のパラメータのビュー)未知のパケット(行に渡すパラメータによってオーダーパラメーター、ビューの機能に対応するパラメータでは、名前は、容易に)ラインを受け入れることができます)
概要:1.1から1.8のルーティング層のために
1.urlとre_pathほとんどない内部の制限は、パラメータを追加したり、後からラインへのアクセスの前にパラメータを追加しますが、一度にURLは、プロジェクト内のトラブルのビットをルートを追加することができます。
2.解决1的麻烦就是在url和re_path中使用正则表达式,可以在访问/articles/.... 前面不变的情况下 增加更多的参数的 上面介绍了加1中参数和2中参数到我们视图处理函数views中,对应接受就行。
# 上面的URl中的路由信息全部写在了主项目中url中:
3.不足的地方:每次都需要在主项目的urls中去写上路由的配置信息,有点繁琐,不利于维护。
解决办法:在每一个app中建立url,在主项目下的url创建分组,从主文件向下app的url中找即可。
2.路由分发
在上图的主项目的url中写上上面的路由分发。
然后对应在app01的url写上真的路由信息:
然后对应在app01的url写上真的路由信息:(同下)
在app02的URls中写上真的路由信息:(只是在主项目的文件下url中就行查找,是哪个下对应的url路由信息,不至于不像之前没有分组的时候那么乱,全部写在一起,只需要在主文件的URl写上最上面的那个信息即可)
# 类似于在广东省下面去找深圳市是一样的道路
views中的代码:
def test(request):
return HttpResponse('app02-test')
3.