機能に対応関係を示す経路urls.pyビュー - >ルーティング層
名も無き有名なグループのグループ化
何未知のパケットで、人気のパケットが
直接内部の後端部に対応する関数に渡さインナーブラケットurls.pyパラメータに一致したリンクのパラメータを取得するために戻って行われます。- 不明グループ
# 前端
<a href="/index/content"></a>
# urls.py ==> 在这里 content是括号里面\d+正则匹配的数据
url(r'^index/(\d+)',views.index)
# views.py
def index(request,任意参数)
print(任意参数) -> 打印结果: content
...
- 有名なグループ - 価格は同じ名前を使用してバックエンド文書の名前を受け取り、実際にあります
# 前端
和上面一样
# urls.py
url(r'^index/(?P<和后端一样的名字>\d+)',views.index)
# views.py
def index(request,和后端一样的名字):
print(和后端一样的名字) -> 打印结果: content
...
- 既知および未知のパケットとパケットが使用できない、再利用することができます
逆引き参照
結果は直接対応するURLにアクセスできるように、フロントエンドのアクセスアドレスは、アドレスは、urls.py私のバックエンドの変更を変更します
# 前端
<a href="{% url 'name名字' %}"></a> -> url这个单词是固定的
# urls.py
url(r'^index/',views.index, name='name名字')
# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse
def index(request):
print(reverse('name名字'))
...
# 这样后端也能实时的获取到修改后的访问地址,前端也不需要去修改 ,后端也不需要去修改.
分析用逆パケット無名の+
# 前端
<a href="{% url 'name名字' 数值 %}"></a> -> url这个单词是固定的
通常 数值 是主键
# urls.py
url(r'^index/(\d+)',views.index, name='name名字')
# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse
def index(request,xx):
print(xx) -> 返回值是 数值
print(reverse('name名字',args=(123,))) -> 记住这样写
...
# 反向解析的别名,一定不要重复
+逆引き参照の有名なグループ化
# 前端
<a href="{% url '别名' 数值 %}"></a> -> url这个单词是固定的
通常 数值 是主键
# urls.py
url(r'^index/(?P<year>\d+)',views.index, name='别名')
# views.py
from django.shortcuts import render, HttpResponse, redirect,reverse
def index(request,xx):
print(xx) -> 返回值是 数值
print(reverse('别名',kwargs={'year': 123})) -> 记住这样写
...
# 反向解析的别名,一定不要重复
ルートの配布
アプリ内のDjangoは独自の静的ファイル、フォルダをテンプレート、urls.pyファイルを持つことができます
以下の項目はurls.pyは、ルーティング機能との対応関係を表示しませんでした
そして、urls.pyでアプリビュー機能を持つルートを関連付けます
分布の完全なルーティングurls.pyプロジェクト名
1. 方式一
# 总urls.py
from app01 import urls as app01_users
from app02 import urls as app02_users
from django.conf.urls import url,include
url(r'^app01/',include(app01_users))
url(r'^app02/',include(app02_users))
需要频繁导包,并且需要取别名,因为每个app下的urls.py文件名都是一样的
2. 方式二
# 总urls.py
from django.conf.urls import url,include
url(r'^app01/',include('app01.urls'))
url(r'^app02/',include('app02.urls'))
这种是通过字符串的方式,不需要导包,用到的模块是 importlib ,将我们写的字符串转化成导包的形式
名前空間
私たちはアプリの開発を分離すると、同じエイリアスを取り、分析時間を逆に表示されることがあり、このエイリアスにステッチすることは以下のアプリですので、我々は解決するには、2つの方法があり、自動的ではありません
一つの方法:
# 总urls.py
from django.conf.urls import url,include
url(r'^app01/',include(app01_users, namespace='app01'))
url(r'^app02/',include(app02_users, namespace='app02'))
这种方式就会在取别名的时候弹出来提示
第二の方法:
トラブルの多くを持っていない、彼ら自身の名前で、デフォルトのアプリステッチの名前を取るための時間です
擬似静的
変更は、当社のウェブサイトは、静的に変装し、.htmlをを追加し、経路探索urls.pyファイルの名前で、Baiduは優先順位が含ま与えるだろう、それは、上面に可能であり、SEO検索エンジンのクエリの優先度を向上させます
しかし---それでもドライ人民元の選手
仮想環境
通常はあまりないとは別のプロジェクトのためのプロジェクトで使用するモジュールをインストールして、インストールされません
対応する特別なインタプリタ環境れているさまざまなプロジェクトを
仮想環境を作成するために、それぞれが再ダウンロード純粋なPythonインタプリタに似ている
仮想あまりにも環境を作成しないでください
Djangoのバージョンの違い
django1.x
django2.x
1との違い:
urls.py 1.xでURLを使用して、と2.xは、パスを使用
し、最初のパス2.xのは、あなたが書いたものと一致する正規表現をサポートしていない
あなたと気分が悪くなった場合、2.xのre_path re_pathもあり、これは、URL中にあなたの1.xです