플라스크 (Flask)를 사용하여 단순하지만 단순한 애플리케이션을 만들려고 노력 중이며 문서에서 잘 설명되지 않은 상황이 계속되고 있습니다.플라스크 애플리케이션의 구조
내 응용 프로그램을 다른 모듈로 분할하고 싶지만 기본 모듈이 아닌 다른 곳에서 app
개체 (또는 db
: flask-sqlalchemy
)에 액세스하는 것이 어려워 보입니다. 모든 것이 접근 할 수있는 세계로 취급하는 자신의 방식을 실제로 작성해야하는 것처럼 보입니다. 의심스러운 코드와 약간의 시간이 필요합니다.
app
및 db
은 모두 주 응용 프로그램이 인스턴스화되는 수준에서 만들어지며 모든 예제에서는 최상위 수준에서 사용할 수 있다고 가정합니다. 그러나 다른 URL 핸들러를 다른 모듈로 분리하면 @app.route
데코레이터를 사용할 수 없습니다. 나는 그 주위에 app.add_url_rule('/...', some.module...)
로 해결할 수 있지만, 다시, 그 기능으로 전달되지 않습니다.
db
과 같은 일이 발생합니다. g
에 붙여야하는지 또는 app
을 통해 액세스 할 수 있는지 여부는 잘 모르겠습니다. 그렇게하면 모델을 별도의 모듈로 옮기는 데 도움이되지 않습니다 - 가져올 때 db
에 액세스하려면 어떻게해야합니까? 모든 예제는 다시 로컬 변수로 사용할 수 있다고 가정합니다.
나는 명백한 것을 놓치고 있습니까? 아니면 잘못된 작업을 위해 플라스크를 사용하려고합니까?
장식자는 단지 함수 래퍼입니다. 모든 서버 로직을 캡슐화하고 클래스의 모든'db' 및'app' 변수를 저장하는 클래스를 만들 수 있습니다. – Blender
@Blender 물론 이것을 해결할 수있는 방법은 여러 가지가 있습니다. 제가 진정으로 원하는 것은 그것을 다루는 표준적인 방법이 있고 그것이 문서에서 완전히 누락 된 것처럼 보이면 길을 따라 더 많은 놀람이 있는지입니다. 나는 어딘가에서 제시된 플라스크 자체로부터 좀 더 명백한 해결책을 기대하고 있었다. – viraptor
청사진 – user956424