Day47 Djangoの基本、ルーティング設定、スペース名

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.

 

おすすめ

転載: www.cnblogs.com/longerandergou/p/11128027.html