Development Tip

Flask 앱의 공통 폴더 / 파일 구조

yourdevel 2020. 12. 25. 10:36
반응형

Flask 앱의 공통 폴더 / 파일 구조


플라스크 응용 프로그램을 방금 만들었고 지금까지 "Hello world!"를위한 라우터가 있습니다. 주형.

좀 더 많은 기능을 추가하고 싶지만 앱 디렉토리를 어떻게 구성해야하는지 궁금합니다.

Flask 앱을 ​​구성하는 가장 일반적인 방법은 무엇입니까? 예를 들어 routes.py모든 경로에 대해을 만들어야 합니까? SQLAlchemy 물건은 어디에 있습니까? 모델이 있어야합니까 models.py?


Flask 문서의 패턴 섹션 ( http://flask.pocoo.org/docs/patterns/packages/) 에서 더 큰 애플리케이션 페이지를 확인해야합니다 . 응용 프로그램이 모듈 대신 패키지를 호출 할 때 대부분의 사람들이 따르는 모델 인 것 같습니다.

나는 views.py당신이 부르고있는 것이라고 믿습니다 routes.py. 그 후 모델은 models.py, 양식은 forms.py, 등으로 이동합니다 .


FlaskApp 디렉터리의 예 :

yourapp/  
    /yourapp  
        /run.py  
        /config.py  
        /yourapp  
            /__init__.py
            /views.py  
            /models.py  
            /static/  
                /main.css
            /templates/  
                /base.html  
        /requirements.txt  
        /yourappenv

run.py-앱을 가져오고 개발 서버를 시작하는 실제 Python 코드가 포함되어 있습니다.
config.py-앱 구성을 저장합니다.
__init__.py-Flask 앱 인스턴스를 만드는 애플리케이션을 초기화합니다.
views.py-이것은 routes정의 된 입니다.
models.py-여기에서 애플리케이션에 대한 모델을 정의합니다.
static- 정적 파일은 CSS, 자바 스크립트, 이미지, 즉 포함
templates- 당신이 저장하는 곳이 당신의 html템플릿 즉 index.html, layout.html
requirements.txt- 이것은 당신이 당신의 패키지 의존성을 저장하는 경우, 사용할 수 있습니다 pip
yourappenv가상 환경을 개발 -


플라스크는 마이크로 프레임 워크라고 생각하며 이제 파일과 폴더를 만드는 방법을 결정해야합니다.

나는 이렇게 사용한다 :

이것은 Django 구조에 가깝습니다.

당신이 원하는 것을 줄 수있는 프로젝트를 볼 것을 제안합니다


응용 프로그램을 분할하면 기능 구조가 아닌 분할을 사용한다고 말할 수 있습니다. 나는 당신이 한 번에 이러한 부서 구성 요소 중 하나에 대해 작업 할 가능성이 더 높기 때문에 이것을 옹호합니다.

이러한 유형의 구조는 다른 사용자 그룹이 다른 유형의보기를 사용하는 마켓 플레이스 또는 SaaS 앱에 적합합니다. API 전용 플라스크 앱 기능 분할을 사용할 수 있습니다.

다음은 Flask Blueprints의 예입니다. 청사진은 본질적으로 더 관리하기 쉬운 부분을 위해 Flask 애플리케이션을 분할하는 방법에 대한 문서화 된 조언입니다. 자세한 내용은 http://exploreflask.com/en/latest/blueprints.html 에서 확인하십시오 .

다음은 분할 분할의 예입니다. 각 기능이 어떻게 그룹화되는지 확인하십시오.

yourapp/
    __init__.py
    admin/
        __init__.py
        views.py
        static/
        templates/
    home/
        __init__.py
        views.py
        static/
        templates/
    control_panel/
        __init__.py
        views.py
        static/
        templates/
    models.py

다음은 기능 예입니다.>

yourapp/
    __init__.py
    static/
    templates/
        home/
        control_panel/
        admin/
    views/
        __init__.py
        home.py
        control_panel.py
        admin.py
    models.py

여기에있는 cookiecutter 템플릿에서 영감을 얻어 앱 개발을 시작할 수 있습니다.


플라스크 프로젝트에 대해 초보자에게 친숙한 간단한 구조를 찾는 사람이라면 누구나 도움이 될 것입니다.

   |__movies 
     |__run.py 
     |__app     
        ├── templates
        │   └── index.html
        │   └── signup.html
        └── __init__.py
        └── routes.py

Here 'movies' is the name given for the main application. It contains 'run.py' and a folder called 'app'. 'app' folder contains all necessary flask files such as 'templates' folder, '__init __.py', and 'routes.py'.

Contents of:

run.py:

from app import app

__init.py__:

from flask import Flask

app = Flask(__name__)

from app import routes


app.run(debug=True)

routes.py:

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

Beauty of flask lies in its flexibility. You can build django like project-structure easily. Django popularized abstraction of features in apps and making them reusable but it can be a overkill for many projects.

But with flask you can go either way. Write reusable apps or write simple apps. Check these cookiecutter skeletons -

  1. minimal skeleton

    myproject ├── config.py ├── instance │   └── config.py ├── myproject │   ├── commands.py │   ├── controllers.py │   ├── extensions.py │   ├── forms.py │   ├── __init__.py │   ├── models.py │   ├── routes.py │   └── ui │   ├── static │   │   ├── css │   │   │   └── styles.css │   │   └── js │   │   └── custom.js │   └── templates │   └── index.html ├── README.md ├── requirements.txt └── wsgi.py

  2. django like skeleton

    myproject ├── config.py ├── development.py ├── instance │   └── config.py ├── myproject │   ├── auth │   │   ├── controllers.py │   │   ├── forms.py │   │   ├── __init__.py │   │   ├── models.py │   │   └── routes.py │   ├── helpers │   │   ├── controllers.py │   │   ├── __init__.py │   │   └── models.py │   ├── __init__.py │   └── ui │   └── templates │   ├── 404.html │   ├── 500.html │   └── base.html ├── README.md ├── requirements.txt ├── tests │   ├── auth │   │   ├── __init__.py │   │   └── test_controllers.py │   └── __init__.py └── wsgi.py

This is an excellent article on this.

ReferenceURL : https://stackoverflow.com/questions/14415500/common-folder-file-structure-in-flask-app

반응형