Django_urls.py(01)

4368 단어 django
Django 프레임에서urls.py의 설정은 매우 중요합니다. 모든 페이지의 URL이 어떻게 생겼는지 결정합니다.그래서 우리가 주제를 열어 그것의 사용을 탐구할 필요가 있다.
우리 먼저 대략적으로 urls.py의 모습을 봅시다. 앞에도 소개가 있었지만 여기는 복습을 한 셈 칩시다.
from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'nowamagic.views.home', name='home'),
    # url(r'^nowamagic/', include('nowamagic.foo.urls')),

    # Uncomment the admin/doc line below to enable admin documentation:
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    # url(r'^admin/', include(admin.site.urls)),
)

 
앞에서 말했듯이 이러한 규칙만 설정하면
(r '^hello/$' ,hello),
정의할 수 있어요.http://127.0.0.1:8000/hello/경로 표시views.py의 Hello 함수입니다.
 
모드에는 첨호 (^) 와 달러 기호 ($) 가 포함되어 있습니다.이것들은 모두 정규 표현식 기호이고 특정한 의미가 있다. 위쪽 화살표는 표현식이 문자열의 머리에 일치하도록 요구하고 달러 기호는 표현식이 문자열의 끝에 일치하도록 요구한다. ^^hello/$일치하는 hello/문자열http://127.0.0.1:8000/hello/Hello/를 찾으면 Hello () 함수를 사용하여 표시합니다. '$' 끝이 없으면 URL에 Hello 1/를 입력하십시오.Hello2/는 Hello () 함수로 표시됩니다.

hello 함수
from django.http import HttpResponse,Http404

def hello(request): 	#              ,     request。 
    return HttpResponse("Hello NowaMagic!")	#            HttpResponse
  , view , ?(r'^$', index),index 함수는 첫 페이지를 생성하는view 함수입니다.참고로view 함수에서return Http ResponseRedirect('./'): 홈 페이지, 즉 127.0.0.1로 돌아갑니다.  *************************************************************************************************** urls.py의 규칙 URL 설정URLconf은 Django가 지탱하는 사이트의 디렉터리와 같다.본질은 URL 모드와 URL 모드를 호출할 뷰 함수 사이의 매핑 테이블입니다.너는 이런 식으로 Django에게 이 URL에 대해 이 코드를 호출하고 그 URL에 대해 그 코드를 호출한다고 알려라.예를 들어 사용자가/foo/에 접근할 때 보기 함수foo 를 호출합니다view (), 이 보기 함수는 Python 모듈 파일view에 존재합니다.py에 있습니다.
 
django-admin을 실행합니다.py startproject 때, 이 스크립트는 자동으로 URLconf (즉 urls.py 파일) 을 만들어 줍니다.동시에 자동으로 생성된 settings.py 파일에서 변수 ROOT 만들기URLCONF 변수의 값은 루트 URLconf의 모듈 이름입니다.기본값은 urls입니다.py 파일의 모듈 이름입니다.

예: 내Django 프로젝트의 루트 디렉토리 이름은 "pearl", ROOTURLCONF의 기본값은 "pearl.urls"입니다.알아요, urls.py는 URL을 설정하는 데 사용되는데, 어떻게 작동합니까?먼저 이 규칙의 원형을 살펴보자.
from django.conf.urls.defaults import *
urlpatterns = patterns('',
    (r'^login/$', openid_login, {}, 'openid-login'),
)
즉,
from django.conf.urls.defaults import *
urlpatterns = patterns(  ,
    (   ,     ,     ,   ),
)
'접두사'는 보기 함수에 자동으로 안내를 붙인다.view = prefix + '.' + view, 마지막으로 Regex URL Pattern (regex,view,kwargs,name) 을 호출합니다.그렇다면 RegexURLPattern()은 어떻게 생겼을까?먼저 좀 보고, 잠시 심도 있는 토론을 하지 않겠다.
class RegexURLPattern(object):
    def __init__(self, regex, callback, default_args=None, name=None):
        self.regex = re.compile(regex, re.UNICODE)
        if callable(callback):
            self._callback = callback
URL의 규칙에 대해 Django는 어떻게 처리합니까?Django가 URL 구성 규칙을 처리하는 방법을 확인하려면 먼저 몇 가지 개념을 알아야 합니다.
  • URL 모드: URL 모드는 Django urls 모듈에서 urlpatterns라는 원조에 포함된 모든 값을 가리킨다.일반적으로patterns 방법으로 urlpatterns 모듈의 내용을 생성합니다.
  • URL 분해기: 일반적으로 하나의 URL 분해기는 하나의 URL 설정 모듈에 대응한다. 이것은 여러 개의 URL 모드를 포함할 수도 있고 여러 개의 다른 URL 분해기를 포함할 수도 있다.이렇게 구조 설계를 포함하여 URL에 대한 Django의 계층적 해석을 실현합니다.URL 분해기는 Django가 app와 프로젝트의 결합을 실현하는 관건이다.일반적으로 include 방법으로 작동하는 URL 설정 모듈은 최종적으로 URL 분해기로 해석됩니다.
  • 일치 결과: 일치 결과는 URL이 올바르게 일치할 때 반환해야 하는 일치 결과입니다.

  • 모든 처리 방식은 일정한 편폭의 소개가 필요하기 때문에 여기는 개념적인 소개만 하고 구체적인 소개는 뒤의 소절에 놓는다.   

    좋은 웹페이지 즐겨찾기