>  기사  >  백엔드 개발  >  Django의 "URL 매핑 규칙" 및 "서버 응답 순서"

Django의 "URL 매핑 규칙" 및 "서버 응답 순서"

高洛峰
高洛峰원래의
2016-10-17 13:55:251114검색

1. Django 검색 경로

import 문 사용 시 Python이 검색하는 시스템 디렉터리 목록입니다.

보기 방법:

sys 가져오기

sys.path 인쇄

일반적으로 Python 검색 경로, Python 및 Django는 백그라운드에서 자동으로 도움을 줄 것입니다.

2. URL 매칭 모드

기본 구조 :

'^매칭이 필요한 URL 문자열 $'

PS: 실제로 최종 완성 url 문자열은 http://root 경로: 포트 번호/일치해야 하는 URL 문자열

시스템에서 자동으로 추가하는 부분 'http://root 경로: 포트 번호/'

예: url 일치 패턴: '^latest_books/$'

최종 전체 URL 문자열: 'http://127.0.0.1:8000/latest_books/'

1) ^ : "부분 문자열 헤드"와 일치합니다.

 예:

'^latest_books/'

'http://127.0.0.1:8000/latest_books/',

'http:/ /127.0.0.1:8000/latest_books/test1/',

'http://127.0.0.1:8000/latest_books/test2/',

'http://127.0.0.1 :8000/latest_books/test1/aaa/'

가 일치합니다. ​

2)$: "하위 문자열의 끝"과 일치합니다.

예:

'latest_books/$'

'http://127.0.0.1:8000/latest_books/',

'http:/ /127.0.0.1:8000/updir_1/latest_books/',

'http://127.0.0.1:8000/updir_2/latest_books/'

이 모두 일치합니다.

3) 하위 문자열 끝에 '/'가 포함되어 있는지 여부

기본적으로 추가해야 합니다(Django 개발자의 기본 습관). 추가하지 않으면 다음과 같은 상황이 발생합니다. 🎜>

django.conf.urls에서 패턴 가져오기, URL, 포함

urlpatterns = 패턴('',

(r'^latest_books$', 'django_web_app.views.latest_books) '),

)

Django의 URL 매핑 규칙 및 서버 응답 순서

하위 문자열 끝에 '/'를 포함하지 않으려면 설정에서 설정을 추가하면 됩니다. .py: APPEND_SLASH=False

하지만 이것이 작동하려면 CommonMiddleware가 설치되어 있어야 합니다.

 4) 웹사이트의 "루트 디렉터리"를 수동으로 구성

  웹사이트의 "루트 디렉터리"에 해당하는 "보기 기능"을 수동으로 구성하지 않으면 다음과 같은 상황이 발생합니다.

Django의 URL 매핑 규칙 및 서버 응답 순서

"보기 기능"에 해당하는 "루트 디렉터리"를 수동으로 구성합니다:

 a) urls.py

django.conf에서 .urls 가져오기 패턴, URL, 포함

urlpatterns = 패턴('',

                                                                > >

b) views.py

def home_page(요청):

return render_to_response('home_page .html')

 c)home_page.html

내 홈페이지

홈페이지입니다. 환영합니다!

실행 결과:

첨부: 정규식의 기초

Django의 URL 매핑 규칙 및 서버 응답 순서3. url 요청에 응답하는 서버의 실행 순서

1) 프로젝트 구조

 

django_web

🎜>   settings.py

   urls.py

   ws gi.py

django_web_app

__init __. py

관리자. .html

manage.py

2) 실행 순서

a) 서버 시작 - python prepare.py runserver

설정에서 설정 가져오기 .py 파일 구성에는 주로 다음이 포함됩니다.

URL 매핑 파일 경로:

ROOT_URLCONF = 'django_web.urls'

페이지 파일 템플릿 경로:

TEMPLATE_DIRS = (

os.path.join(BASE_DIR, '템플릿'),

)

  데이터베이스 구성:

DATABASES = {

'기본값': {

'ENGINE': 'django.db.backends.mysql',

'이름': 'django_db',

'USER': 'root',

'PASSWORD': 'feng',

'HOST': '127.0 .0.1',

'PORT': '3306',

}

}

b) 응답 순서

첫 번째 단계 1: 브라우저가 요청을 제출합니다

http://127.0.0.1:8000/latest_books/

2단계: 서버가 urls.py에서 요청된 URL과 일치하고 해당하는 "view"를 찾습니다. function"

3단계: 해당 "view function"을 호출하고 HttpResponse 객체를 반환합니다.

4단계: Django는 HttpResponse 객체를 적합한 HTTP 응답으로 변환하고 페이지 표시를 반환합니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.