Djangoフレームワーク - ルーティング(URLの)層

名も無き有名なグループのグループ化

不明グループ

定期的なブラケットは、ブラケットなどのコンテンツに一致する位置パラメータテスト機能(リクエスト、引数)の背後にあるビューに渡されます

例えば:

url(r'^test/(\d+)/',views.test)

有名なグループ化

定期的なプレーは、個々の名前を与えることです

ブラケットは、コンテンツにマッチするキーパラメータテスト機能(リクエスト、月= 123)の背後にあるビューへ

今月は、他の値であってもよいです

例えば:

url(r'^test/(?P<month>\d+)/',views.test)

注意を払います

よく知られており、パケットを使用して、未知のパケットを組み合わせることはできないが、未知および既知のパケットが単独で使用される場合は、複数回使用することができ、複数のパケットがあります

例えば:

url(r'^test/(\d+)/(\d+)/',views.test)
url(r'^test/(?P<month>\d+)/(?P<month>\d+)/',views.test)

逆引き参照

一つのこと、直接対応するURLにアクセスすることができ、動的解析結果

どのようにそれを行うには?

:ルーティング機能は、エイリアス関係からビューに対応し、解析され、対応するURLに応じて動的エイリアスを追従することが可能です

例えば:

url(r^test_add/',testadd)

前の決意

{%url 'xxx' %}

バックエンドの分析

インポートモジュール

import revers
url = revers('xxx')

不明なパケット逆引き

url(r'^test_addsajdsjkahdkjasjkdh/(\d+)/', views.testadd,name='xxx')

前の決意

在模版login.html文件中,反向解析的使用
    <a href="{% url 'xxx' 1 %}">222</a>

バックエンドの分析

在views.py中,反向解析的使用:
    url = reverse('xx',args=(1,)) 

逆引き有名なグループ化

url(r'^test_addsajdsjkahdkjasjkdh/(?P<year>\d+)/', views.testadd,name='xxx')

前の決意

<a href="{% url 'xxx' 1 %}">222</a>
<a href="{% url 'xxx' year=1 %}">222</a>

バックエンドの分析

url = reverse('xxx',args=(1,))

ルートの配布

例えば:Djangoは100アプリを持っている、それはあまりにも長い間、コード内のURL

APP内部Djangoは、独自のテンプレートフォルダ、静的フォルダ、およびファイルを持つことができますurls.py

urls.pyの名の下にプロジェクトの総ルートルーティング機能との対応関係を表示していないのではなく、トランジット駅を作るために、内の別のアプリにリクエストを分配するための唯一の責任がある、アプリ内のビュー機能との対応を行います

実行します。

from django.conf.urls import url,include

url(r'^app01/',include(app01_urls)),
url(r'^app02/',include(app02_urls))

名前空間

私たちのプロジェクトは、複数のアプリケーションを作成するには、各アプリの下で、別名パスの試合でプレーしているときに、重複するエイリアスがある場合、それは、逆引き報道に表示されますが、私たちは、名前が重複しないようにしよう

総ルート

url(r'^app01/',include('app01.urls',namespace='app01'))
url(r'^app02/',include('app02.urls',namespace='app02'))

各アプリのルーティング

print(reverse('app01:index'))
print(reverse('app02:index'))

擬似静的

静的のふり動的なWebページが、目的はSEO百度や他の検索エンジンのクエリの優先度を向上させることです

検索エンジンのサイトに含まれる場合、それはあなたの手が静的リソースファイルのように見える打撃を優先させて頂きます

あなたは、擬似静的な最適化を使用する方法に関係なく乾燥しているが、人民元の選手

ハッハッハ!

仮想環境

通常のプロジェクトのために保存、プロジェクトだけではなく、より少ないをインストールするために使用され、インストールされません

異なるプロジェクトは、対応する特別なインタプリタ環境を持っています

それぞれの仮想環境を作成し、同様にPythonインタプリタを再ダウンロードします

異なるプロジェクトの実際の機能は、と呼ばれる投稿がありrequestments.txt、ファイルはプロジェクトの1リストされているモジュール名とバージョン番号を使用する必要があり
EG:
Djangoに= 1.11.11
nginxの
内部コマンドから直接ファイルをダウンロードするために行くだろう、後者モジュールの全てと対応するバージョン

仮想環境があまりにも多くの月を作成しない、ハードディスクリソース操作を占めるようになります

違いDjango1バージョンとバージョンDjango2

Django1.x

違い:

urls.py1.1は2.xは、パスを使用して、URLで使用されています

最初の引数2.xでは、正規表現、あなたはどのような試合書いたもののいくつかをサポートしていません。

2.xのURL 1.xのように、このre_pathは、re_pathもあります

両者の差:

どのような5種類のコンバータ(パスコンバータ)django2.xのデフォルトサポート

str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
int,匹配正整数,包含0。
slug,匹配字母、数字以及横杠、下划线组成的字符串。
uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。 path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)

例えば

path('articles/<int:year>/<int:month>/<slug:other>/', views.article_detail) 
# 针对路径http://127.0.0.1:8000/articles/2009/123/hello/,path会匹配出参数year=2009,month=123,other='hello'传递给函数article_detail

おすすめ

転載: www.cnblogs.com/lulingjie/p/11766232.html