Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 머신러닝
- sklearn
- PARTITION BY
- partition
- 사이킷런
- SQLD
- data preprocessing
- SQL
- Cartesina Product
- 원핫인코딩
- CROSS JOIN
- 명령어
- django
- 기본
- 레이블 인코딩
- Machine Learning
- Python
- ML
Archives
- Today
- Total
Programming Blog
8. 장고 urls 본문
URL이란?
- url은 웹 주소를 뜻한다. 인터넷의 모든 페이지는 고유한 URL을 가지고 있고 애플리케이션은 사용자가 URL을 입력하면 어떤 내용을 보여줘야 하는지 알고 있다. 장고는 URLconf(URLconfiguration)을 사용한다. URLconf는 장고에서 URL과 일치하는 뷰를 찾기 위한 패턴들의 집합이다.
장고 URL 작동법?
- 에디터에서 mysite/urls.py 파일을 열면 아래와 같은 내용이 보인다.12345678910"""mysite URL Configuration[...]"""from django.conf.urls import urlfrom django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),]
cs
전에 실행했던 관리자 URL이 있다.
장고는 admin/ 로 시작하는 모든 URL을 view와 대조해 찾아낸다. 무수히 많은 URL이 admin URL에 포함될 수 있어 일일이 모두 쓸 수 없으므로 정규표현식을 사용한다.
정규표현식(Regex)
- 장고가 URL을 뷰에 매칭시키기 위하여 regex를 사용하는데 regex는 정규표현식(regular expressions)의 줄임말이다.
정규식은 많은 검색 패턴의 규칙을 가지고 있다. - URL패턴 만들기 위해 아래 표기법을 사용하여 몇 가지 규칙만 사용한다.
- ^ : 문자열이 시작할 때
- $ : 문자열이 끝날 때
- \d : 숫자
- . (온점) : 바로 앞에 나오는 항목이 계속 나올 때
- () : 패턴의 부분을 저장할 때
이외에도 문자열을 이용해 url을 만들 수 있다. - 만약 http://www.mysite.com/post/1234/ 라는 사이트가 있다고 가정했을 때 1234 는 글 번호를 의미한다.
뷰마다 모든 글 번호를 일일이 매기는 것이 힘드므로 정규표현식을 사용하여 url패턴을 만들어 숫자값과 매칭되게 할 수 있다.
예를 들어 ^post/(\d+)/$ . 이런식으로 사용하였을 때
- ^post/ : url이(오른쪽부터) post/ 로 시작한다.
- (\d+) : 숫자(한 개 이상)가 있다. 이 숫자로 조회하고 싶은 게시글을 찾을 수 있다.
- / : /뒤에 문자가 있다.
- $ : url 마지막이 / 로 끝난다.
첫 번째 Django url
- 첫 번째 url을 만들기 위해 http://127.0.0.1:8000/ 를 홈페이지 주소로 만들어 글 목록이 보이게 한다.
또한 mysite/urls.py 파일을 깨끗한 상태로 유지하기 위해, blog 애플리케이션에서 메인 mysite/urls.py 파일로 url들을 가져온다.
먼저 # 으로 시작하는 줄을 삭제하고 main url(' ')로 blog.urls 를 가져오는 행을 추가한다.
그럼 mysite/urls.py 파일은 아래처럼 보일 것이다.
지금 장고는 http://127.0.0.1:8000/로 들어오는 모든 접속 요청을 blog.urls로 전송해 추가 명령을 찾을 것이다.1234567from django.conf.urls import include, urlfrom django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls),url(r'', include('blog.urls')),]cs
파이썬에서 정규 표현식을 작성할 때는 항상 문자열 앞에 r을 붙인다. 이것은 파이썬에게 문자열에 특수 문자가 있다는 것을 알려준다.
blog.urls
- blog/urls.py 라는 새 파일을 생성하고 아래 두 줄을 추가한다.
이 코드로 장고의 메서드와 blog 애플리케이션에서 사용할 모든 view를 불러오겠다는 것을 뜻한다.12from django.conf.urls import urlfrom . import viewscs 그 다음, 첫 번째 URL 패턴을 추가한다.
이제 post_list 라는 이름의 view가 ^$ URL에 할당되었다. 이 정규표현식은 ^에서 시작해 $로 끝나는 지를 매칭할 것이다.123urlpatterns = [url(r'^$', views.post_list, name='post_list'),]cs
즉 문자열이 아무것도 없는 경우에만 매칭된다. URL 확인자(resolver)는 'http://127.0.0.1:8000/'는 URL의 일부가 아니기 때문에
틀린 것은 아니다. 이 패턴은 장고에게 누군가 웹사이트에 'http://127.0.0.1:8000/' 주소로 들어왔을 때 views.post_list 를 보여주라는 의미이다.
마지막 부분인 name='post_list' 는 URL에 이름을 붙인 것으로 뷰를 식별한다. 뷰의 이름과 같을 수도 완전히 다를 수도 있다. 이름을 붙인 URL 은 후반에 사용하고 지금은 URL마다 이름 짓는 것이 중요하다.
URL에 고유한 이름을 붙여, 외우고 부르기 쉽게 만들어야 한다.
'Python' 카테고리의 다른 글
10. HTML 시작하기 (0) | 2019.01.25 |
---|---|
9, 장고 뷰 만들기 (0) | 2019.01.25 |
7. 배포하기 (0) | 2019.01.24 |
6. 장고 관리자 (0) | 2019.01.24 |
5. Django 프로젝트 (2) (0) | 2019.01.24 |
Comments