Converter 유형
Converter | 설명 | 정규표현식 표현 (regex) |
PathConverter | 같은 string 뿐만 아니라 슬래시( / ) 를 허용 | '[^/].*?' |
UnicodeConverter | 슬래쉬( / )문자는 포함하지 않은 문자열 | '[^/]' + length |
IntegerConverter | 양의 정수를 허용 | r'\d+' |
FloatConverter | 양의 부동 소수점 값을 허용 | r'\d+\.\d+' |
UUIDConverter | UUID 문자열 허용 | r'[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-' \ r'[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}' |
Flask는 URL에 변수를 할당하여 동적으로 만들 수 있습니다.
그 방법은 원하는 변수이름에 "<>"를 붙히면 됩니다.
<variable_name>을 사용해 URL에 변수를 추가할 수 있습니다.
그렇게 되면 함수는 <variable_name>을 키워드 인수로 받아들입니다.
from flask import Flask
app = Flask(__name__)
@app.route('/user/<username>')
def show_user_profile(username):
return f'User is... {username}'
@app.route('/post/<int:intID>')
def show_a(intID):
return 'int is... %d' % intID
@app.route('/post2/<string:stringID>')
def show_b(stringID):
return 'string is... %s' % stringID
@app.route('/path/<path:subpath>')
def show_c(subpath):
return 'Subpath is... %s' % subpath
@app.route('/path2/<uuid:uuID>')
def show_d(uuID):
return 'uuid is... %s' % uuID
컨버터 유형에 대한 예제코드 입니다.
위와 같이 선택적으로 변환기를 사용하여 같은 인수 유형을 지정 할 수 있습니다.
정규표현식의 패턴
여기서 PathConverter의 정규표현식을 살펴보자면,
'[^/].*?' 로 해석하자면,
문자 " / " 를 제외한 최소 0 번 이상 나타나는 문자를 찾는 것 입니다.
아래와 같은 정규표현식의 패턴을 보면 알 수 있습니다.
[^문자] | 괄호안의 문자를 제외한 것 |
$ | 끝나는 문자열 의미 |
. | 모든 문자열(띄어쓰기 포함 \n은 제외) |
[] | 괄호안의 문자들 중 하나. or 처리 묶음 |
* | 없거나 or 있거나 (여러개) |
+ | 최소 한개 or 여러개 |
? | 없거나 or 최대 한개만 {0, 1} 와 동일 |
*? | 없거나, 있거나 and 없거나, 최대한개 : 없음 {0} 와 동일 |
+? | 최소한개, 있거나 and 없거나, 최대한개 : 한개 {1} 와 동일 |
{n} | 최소 n개 이상 |
{m, n} | 최소 m개 이상, 최대 n개 이하 |
더 자세한 정규표현식을 보고싶으시다면 참고 해주세요.
실제로 아래와 같이 코드에 작성하여 정규표현식을 검증해보았습니다.
import re
print(re.findall('[^/].*?', '/hello/flask/instagram'))
# ['h', 'e', 'l', 'l', 'o', 'f', 'l', 'a', 's', 'k', 'i', 'n', 's', 't', 'a', 'g', 'r', 'a', 'm']
print(re.findall('[^/].{0}', '/hello/flask/instagram'))
# ['h', 'e', 'l', 'l', 'o', 'f', 'l', 'a', 's', 'k', 'i', 'n', 's', 't', 'a', 'g', 'r', 'a', 'm']
주석에 나와있는 결과를 보시면 문자 " / " 를 제외한 최소 0 번 이상 나타나는 문자들을 찾은 것을 확인 할 수 있습니다.
Reference Path
werkzeug.routing — Flask API
tedboy.github.io
[JS] 📚 정규표현식(RegExp) - 이해하기 쉽게 정리 + 응용 예제
정규표현식(Regular Expression) 정규식(Regular Expression)은 문자열에서 특정 내용을 찾거나 대체 또는 발췌하는데 사용된다. 대표적으로 입력칸에 전화번호나 이메일을 입력하라고 했을때 옳지 않은
inpa.tistory.com
유림's Blog
베짱이가 되고 싶은 개미의 기술 블로그
yurimkoo.github.io
'flask' 카테고리의 다른 글
flask clone coding [4] (댓글 API) (0) | 2022.11.20 |
---|---|
WSGI와 Werkzeug (0) | 2022.11.16 |
flask clone coding [3] (JWT 구현) (0) | 2022.11.15 |
flask clone coding [2] (데이터 검증) (0) | 2022.11.13 |
flask clone coding [1] (Flask-SQLAlchemy 3.0 변경사항) (0) | 2022.11.06 |