English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Flask 변수 규칙

규칙 매개변수에 변환 가능한 부분을 추가하여 URL을 동적으로 구축할 수 있습니다. 이 변수 부분은 <variable로 표시됩니다.-name>로 전달됩니다. 이는 규칙에 연결된 함수에 키워드 매개변수로 전달됩니다.

다음 예제에서, route() 장식자의 규칙 매개변수는 URL에 추가된 추가 데이터를 포함합니다 /hello의 <name> 변수 부분. 따라서, 브라우저에서 URL을 입력하면 http://localhost:5000/hello/w3codebox를 사용하면 'w3codebox는 hello() 함수에 매개변수로 제공됩니다.

다음 코드를 참고하세요 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/hello/<name>')
 def hello_name(name):
     return 'Hello %s!' % name
 if __name__ == '__main__':
     app.run(debug = True)

위의 스크립트를 파일:hello.py에 저장하고 Python shell에서 실행합니다.

그런 다음, 브라우저를 엽니다. URL을 입력 => http://localhost:5000/hello/w3codebox. 브라우저에서 'Hello w'를 볼 수 있습니다3codebox

기본 문자 변수 부분 외에도 다음 변환기 생성 규칙을 사용할 수 있습니다 -

번호변환기설명
1int정수를 받아들입니다
2float浮动值에 대해
3path디렉토리 구분자로 사용되는 슬래시 문자를 받아들입니다(/)

아래의 코드에서 모든 이러한 생성자가 사용되었습니다.

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/blog/<int:postID>')
 def show_blog(postID):
     return 'Blog Number %d' % postID
 @app.route('/rev/<float:revNo>')
 def revision(revNo):
     return 'Revision Number %f' % revNo
 if __name__ == '__main__':
     app.run()

Python Shell에서 위의 코드를 실행합니다. URL을 브라우저에서 방문 => http:// localhost:5000/blog/11。

지정된 숫자 값은 show_blog() 함수의 매개변수로 사용됩니다. 브라우저에서 다음 출력을 표시합니다. -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
블로그 번호 11

브라우저에 이 URL을 입력하세요 - http://localhost:5000/rev/1.1

revision() 함수는 실수형을 매개변수로 받습니다. 다음 결과는 브라우저 창에 표시됩니다 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
개정 번호 1.100000

Flask의 URL 규칙은 Werkzeug의 루트 모듈을 기반으로 합니다. 이는 생성된 URL이 유일하며 Apache가 제정한 예시를 기반으로 한 것을 보장합니다.

다음 스크립트에서 정의된 규칙을 고려해 보겠습니다 -

# Filename : example.py
# Copyright : 2020 By w3codebox
# Author by : ko.oldtoolbag.com
# Date : 2020-08-08
from flask import Flask
 app = Flask(__name__)
 @app.route('/flask
 def hello_flask():
     return 'Hello Flask'
 @app.route('/python/)
 def hello_python():
     return 'Hello Python'
 if __name__ == '__main__':
     app.run()

두 규칙 모두 비슷하게 보이지만, 두 번째 규칙에서는 끝자리 슬래시(/)를 사용했습니다./)으로 되어 있어서, 규범적인 URL이 되었습니다. 따라서,/python 또는/python/같은 출력을 반환하지만, 첫 번째 규칙의 경우, URL:/flask/원인이 될 수 있습니다404 Not Found 페이지。