URLs Джанго (маршрутизации)

URLs Джанго (маршрутизации)

URL конфигурации (URLconf) как поддержка сайта каталога Джанго.

Суть его состоит в таблице отображения между URL и URL вы хотите вызвать эту функцию просмотра.

Таким образом, мы сказали Джанго, который встречается URL времени, к которому соответствующая функция выполняется.

Основной формат:

from django.conf.urls import url

urlpatterns = [
  url(正则表达式, views视图函数,参数,别名),
]

Параметр Описание

  • Регулярные выражения: Регулярное выражение строки
  • Вид на: вызываемый объект, вид, как правило, является функцией
  • Параметры: дополнительные параметры, которые будут переданы функции просмотра по умолчанию (словарь)
  • Псевдоним: Необязательное имя параметра

Джанго версия системы маршрутизации 2.0

Re_path версия 2.0 и версия 1.11 URL-адрес такой же, использование

from django.urls import path,re_path
urlpatterns = [
 path('articles/2003/', views.special_case_2003),
]


Подробные регулярные выражения

Базовая конфигурация

from django.conf.urls import url

from . import views

urlpatterns = [
 url(r'^articles/2003/$', views.special_case_2003),
 url(r'^articles/([0-9]{4})/$', views.year_archive),
 url(r'^articles/([0-9]{4})/([0-9]{2})/$', views.month_archive),
 url(r'^articles/([0-9]{4})/([0-9]{2})/([0-9]+)/$', views.article_detail),
]

Меры предосторожности:

  1. urlpatterns элементы в порядке письма от самого верхнего пути сопоставления регулярного выражения, после того, как матч успешно прекращено.
  2. Для того, чтобы захватить значение из URL, только поместить пару скобок (пакет соответствует) вокруг него.
  3. Нет необходимости добавлять ведущую обратную косую черту, потому что каждый URL имеет. Например, она должна быть ^ статьи, а не ^ / статьи.
  4. Каждое регулярное выражение перед «R» является необязательным, но предложил добавить.

Дополнительная информация:

  1. Если URL-адрес открытого доступа не отстает / переход к пути с / элементов конфигурации: APPEND_SLASH = True
  2. Файл конфигурации по умолчанию Django не settings.py APPEND_SLASH этого параметра, но этот параметр по умолчанию Django APPEND_SLASH = True / False, его роль автоматически добавляются в конце URL «/»


Согласование маршрутизации (совпадение пакетов)

:( пакет должен дать некоторые регулярные выражения круглые скобки) с использованием простого регулярного выражения пакет соответствия (), чтобы захватить значение URL с помощью скобок и передачи параметров в положение с точки зрения функции

В Python регулярных выражений, группа имени синтаксиса регулярных выражений группа (?P<name>pattern), которая nameявляется именем группы, patternэто шаблон , чтобы соответствовать.

Здесь переписывается именованная группа

from django.conf.urls import url

from . import views

urlpatterns = [
 url(r'^articles/2003/$', views.special_case_2003),
 url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
 url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
 url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
]

Эта реализация идентична предыдущий пример, только тонкое различие: захваченное значение в качестве ключа вместо параметров функции передачи параметров положения для просмотра.

Например, для URL / статьи / 2017/12 / соответствующие вызовы вид функции следующим образом:

views.month_archive(request, year="2020", month="1")

Неизвестная группа

При сопоставлении маршрутов, в определенных регулярных выражениях добавленных скобок

При сопоставлении регулярного выражения круглых скобок будут совпадать с позицией содержания, как соответствующие параметры, вид передаются функция

url(r'^test/([0-9]{4})/',views.test)

функция просмотра

def index(request, args):
  return HttpResponse('KAI')

Известные группировки

В какой-то регулярное выражение из псевдонима

Когда содержимое соответствует регулярному выражению в скобках будет, как именованные аргументы передаются в соответствующую функцию вида

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

функция просмотра

def index(request,year):
  return HttpResponse('KAI')          

Он добавил:

Неизвестная группа и известная группировка не может быть смешано

Хотя то же самое не может быть смешанным, но может использовать несколько имен

URL ( г «^ тест / (? P \ D +) / (? Р \ Д +) /», views.test)

Обратный поиск

Некоторые методы могут быть получены в результате Result URL для получения доступа к соответствующему

Представьте себе ситуацию, когда у вас есть более чем 200 ярлык, HREF пункт индекса /,

Однажды в URLs внутри индекса изменяется на new_index, то вы можете изменить только руководство тег HREF

При изменении отделки, это my_index, то время суток может изменить адрес, то нет никакого способа, больше не писать программы фильеры обратный анализ применяется к этому.

Использование:

Дайте функцию маршрутизации и просматривать корреспонденцию между именем

url(r'^testadd/',views.testadd,name='add')

Фронтальный аналитический

{% url 'add' %}

Back-конец аналитической

from django.shortcuts import render,HttpResponse,redirect,reverse
  reverse('add')

Неизвестный обратный поиск пакетов

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

Фронтальный аналитический

{% url 'add' 1 %}

Back-конец аналитической

reverse('add',args=(1,))

Известные группировки обратный поиск

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

Фронтальный аналитический

URL% { 'надстроек. 1%} # рекомендуется

URL% { 'надстроек' год =%}. 1 # Стандартный

Back-конец аналитической

обратный ( 'добавить', арг = (1,))

обратного ( 'добавить', kwargs = { 'год': 1})

распределение маршрутов

Когда Джанго проект является относительно большим, когда функция маршрутизации и просматривать отношение соответствия более

Общий код маршрутизации слишком длинный

Принимая во внимание общий код маршрутизации плохо обслуживание Джанго поддержки каждого приложения может иметь свой собственный urls.py

И не общий маршрут больше не делать заочные отношения маршрутизации и функцию представления, а лишь только операцию задачи распределения

В зависимости от идентифицированного запроса текущих потребностей запроса доступа к функции принадлежит приложению автоматически

Выпущенный в соответствующем приложении внутри urls.py, а затем сделали, чтобы соответствовать виду функции маршрутизации с помощью приложения внутри urls.py

Мало того, что в дополнении к каждому приложению может иметь свое собственное дополнение urls.py может также иметь свои собственные статические шаблоны папок файла шаблон

Дополнительная стать простой Джанго на основе суб-группа будет развиваться на основе указанных выше характеристик

Только вам нужно создать проект Джанго пустого после каждого человеку нужно только развивать свое собственное приложение

Особи многопрофильного приложение все копий проекта регистрации

Общее распределение маршрута один раз

Модуль требует распределения

от django.conf.urls импорта URL, включают в себя

URL ( г '^ app01 /', включают в себя ( 'app01.urls')),

URL ( г '^ app02 /', включают в себя ( 'app02.urls'))

Sub-маршрутизация

from django.conf.urls import url
from app01 import views

urlpatterns = [
url(r'^index/',views.index)
]

from django.conf.urls import url
from app02 import views

urlpatterns = [
url(r'^index/',views.index)
]


Пространства имен

url(r'^app01/',include('app01.urls',namespace='app01'))
url(r'^app02/',include('app02.urls',namespace='app02'))
后端解析
reverse('app01:index')
reverse('app02:index')
前端解析
{% url 'app01:index' %}
{% url 'app02:index' %}
# 在给路由与视图函数起别名的时候只需要保证永远不出现冲突的情况即可
# 通常情况下我们推荐期别名的时候加上当前应用的应用名前缀

url(r'^index/',views.index,name='app01_index')
url(r'^index/',views.index,name='app02_index')

Виртуальная среда

Мы хотим сделать для различных проектов для установки только те элементы, необходимые для функциональных модулей

Когда потребляется меньше единицы и не будут установлены, чтобы избежать загрузки ресурсов

Как создать виртуальную среду

Виртуальная среда похожа на чистую питона среде интерпретатора

Каждый жаргон для создания виртуальной среды вы хотели бы повторно загрузить питон переводчик

Виртуальные среды не рекомендуется использовать слишком много

Изучение стадии мы все еще используем среду машины могут быть установлены на все модули все под родной среде

Псевдо-статические

URL заканчивая .html создается впечатление, как будто содержание этого документа было написано умершие не так легко изменить

Для того, чтобы улучшить свой сайт собраны усилиями поисковых систем SEO для обеспечения эффективного сайта запросов

рекомендация

отwww.cnblogs.com/kai-/p/12158918.html