티스토리 뷰
Regular Expression (정규표현식)
- 문자열 패턴, 규칙, Rul을 정의하는 방법
- 이를 통해, 문자열 검색이나 치환작업을 간편하게 처리 가능
- 파이썬3 정규표현식 라이브러리 re 모듈을 지원
예시
최대 3자리 숫자 : "[0-9]{1,3}" 혹은 "\d{1,3}" 휴대폰번호 : "010[1-9]\d{7}" 한글이름 2글자 혹은 3글자 : "[ㄱ-힣]{2,3}" 성이 "이" 인 이름 : "이[ㄱ-힣]{1,2}" |
1글자 패턴 예시
숫자 1글자 : "[0123456789]" 또는 "[0-9]" 또는 "\d" 알파벳 소문자 1글자 : "[abcdefghijklmnopqrstuvwxyz]" 혹은 "[a-z]" 알파벳 대문자 1글자 : "[ABCDEFGHIJKLMNOPQRSTUVWXYZ]" 혹은 "[A-Z]" 알파벳 대/소문자 1글자 : "[a-zA-Z]" 16진수 1글자 : "[0-9a-fA-F]" 문자열의 시작을 지정 : "^" 문자열의 끝을 지정 : "$" 한글 1글자 : "[ㄱ-힣]" |
반복횟수 지정
"\d?" : 숫자 0회 또는 1회 "\d*" : 숫자 0회 이상 "\d+" : 숫자 1회 이상 "\d{m}" : 숫자 m글자 "\d{m,n}" : 숫자 m글자 이상, n글자 이하 |
휴대폰 번호를 판단하는 정규표현식
# 11자 (01012341234), 10자 (0111231234) [011,016,017,018,019] 과거 휴대폰 번호 존재 import re val = "01012341234" pattern = r"^01[016789][1-9]\d{6,7}$" if re.match(pattern, val): print ("휴대폰 번호 포맷 일치") else: print ("휴대폰 번호 포맷 불일치") |
URL Conf
- 프로젝트(askdjango) setting.py에 URLConf 모듈을 지정한다.
ROOT_URLCONF = 'AskDjango.urls' |
- 특정 URL과 뷰 매핑 List
- Django 서버로 Http요청이 들어올 때마다, URLConf매핑 List를 처음부터 끝까지 순차적으로 훝으며 검색한다.
- 매칭되는 URL Rule을 찾지 못할경우, 404 Page Not Found 응답을 발생 시킨다.
예제1
# blog/urls.py url(r'^sum/(?P<x>\d+)/$', views.mysum) # (?P)영역 문자열 정규표현식을 적용하여 \d+패턴에 부합된다면 x라는 변수명을 인자로 넘기겠다. # blog/views.py def mysum(request, x): return HttpResponse(int(x)) |
> x라는 인자 1개를 넘겨 받아 처리
예제2
# blog/urls.py url(r'^sum/(?P<x>\d+)/(?P<y>\d+)/$', views.mysum) # blog/views.py def mysum(request, x, y): return HttpResponse(int(x) + int(y)) |
> x,y라는 인자 2개를 넘겨받아 덧샘하여 return
예제3
# blog/urls.py url(r'^sum/(?P<x>\d+)/(?P<y>\d+)/(?P<z>\d+)/$', views.mysum) url(r'^sum/(?P<x>\d+)/(?P<y>\d+)/$', views.mysum) url(r'^sum/(?P<x>\d+)/$', views.mysum) # blog/views.py def mysum(request, x, y=0, z=0): retrun HttpResponse(int(x) + int(y) + int(z)) |
예제4
# 인자가 여러개인 경우 url(r'^sum/(?P<numbers>[\d/]+)/$', views.mysum) # blog/views.py def mysum(request, numbers): return HttpResponse(sum(map(int,numbers.split('/')))) # blog/urls.py (이름, 나이 인자 받기) url(r'^hello/(?P<name>[ㄱ-힣]+)/(?P<age>\d+)$', views.hello) # blog/views.py def hello(request, name, age): return HttpResponse('안녕하세요. {}. {}살이시네요'.format(name,age)) |
"""본 내용은 AskDjango VOD, "장고 차근차근 시작하기" 강의내용을 참고하여 작성했습니다.(https://nomade.kr/)"""
'Python > * Django' 카테고리의 다른 글
6. Django Admin (0) | 2017.12.12 |
---|---|
5. Migration (0) | 2017.12.12 |
4. Django Model과 Model Fields (0) | 2017.12.12 |
3. View Overview (0) | 2017.12.12 |
1. Django App, URLconf, Template (0) | 2017.12.11 |