Flask, webapp2 및 Pyramid와 같은 Python 웹 응용 프로그램 프레임 워크에서 각 route-handling-function은 어떻게 고유 한 py 파일을 가질 수 있습니까? 필자는 이러한 모든 기능을 하나의 파일 구조에 모아두기를 원하지 않습니다. Flask, webapp2 및 Pyramid에서이 작업을 수행하려면 어떻게해야합니까?URL 처리 함수를 모듈화하는 방법은 무엇입니까?
감사합니다.
Flask, webapp2 및 Pyramid와 같은 Python 웹 응용 프로그램 프레임 워크에서 각 route-handling-function은 어떻게 고유 한 py 파일을 가질 수 있습니까? 필자는 이러한 모든 기능을 하나의 파일 구조에 모아두기를 원하지 않습니다. Flask, webapp2 및 Pyramid에서이 작업을 수행하려면 어떻게해야합니까?URL 처리 함수를 모듈화하는 방법은 무엇입니까?
감사합니다.
플라스크와 피라미드 (webapp2에 대해서는 잘 모르지만 동일 할 수도 있음)에서 route-handling-function (보기라고 부름)은 기능이지만 앱 레지스트리에 등록하는 것입니다.
플라스크에, 당신은 당신이 그것을 등록으로 어디서든보기를 넣을 수 있습니다 :
app.py :
from flask import Flask
app = Flask(__name__)
view.py :
from app import app
@app.route("/")
def hello():
return "Hello World!"
main.py :
from app import app
if __name__ == "__main__":
app.run()
피라미드와 동일합니다. 나는 세부 사항으로 가지 않을 것이다. 등록 과정은 다르지만 아이디어는 같습니다. 그러나 그것을 등록하는 한 언제 어디에서나 사용할 수 있습니다. 뷰를 등록하는 두 가지 방법이 있습니다.
add_view
을 사용하는 경우 첫 번째 인수는 함수의 점선으로 된 경로입니다. 어디든지 놓고 올바른 길을 여기에 두십시오.scan
사용 : 첫 번째 인수는보기를 찾기 위해 검사되는 패키지입니다. 모든 뷰가 패키지 및 하위 패키지에 있는지 확인하면 모든 것이 작동합니다.파이썬이 특정 장소에서 기능을 기대한다면 다른 파일에서 직접 가져올 수 있습니다. 예를 들어
, code.py
에서 웹 프레임 워크 수입 함수는 경우 : 웹 마찬가지로 지금까지
from mycode.somewhere import a, b
from mycode.some.other.place import c
:
다음def a():
pass
def b():
pass
def c():
pass
다른 곳에서 함수를 가져 와서 다음과 code.py
을 대체 할 수 프레임 워크와 관련하여 code.py
에 여전히 a
, b
및 c
코드가 포함되어 있지만 코드가 다른 방식으로 구성 될 수 있습니다.
대단히 감사합니다. – Phil
안녕하세요! 고맙습니다. 좋은 설명. 나는 여기에서 그것을 알아낼 수있을 것이다. 하나의 질문이지만, "@ app.route ("/ ")"를 건너 뛰고 view.py에 놓을 수는 있지만 대신 경로 정의와 별도로 함수를 정의하십시오. (예 : 중앙 라우팅 파일, 파일 당 기능별 분리 구조) – Phil
예, 플라스크에는 데코레이터를 사용하지 않고 경로를 등록하는 방법이 있습니다. http://flask.pocoo.org/docs/api/#flask.Flask .add_url_rule – madjar