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
가상 환경을 개발 -
플라스크는 마이크로 프레임 워크라고 생각하며 이제 파일과 폴더를 만드는 방법을 결정해야합니다.
나는 이렇게 사용한다 :
- 플라스크 폴더 및 파일 구조-> https://gist.github.com/4545740
이것은 Django 구조에 가깝습니다.
당신이 원하는 것을 줄 수있는 프로젝트를 볼 것을 제안합니다
- danjac / newsmeme — Bitbucket-> https://bitbucket.org/danjac/newsmeme/overview
- sean- / flask-skeleton · GitHub-> https://github.com/sean-/flask-skeleton
응용 프로그램을 분할하면 기능 구조가 아닌 분할을 사용한다고 말할 수 있습니다. 나는 당신이 한 번에 이러한 부서 구성 요소 중 하나에 대해 작업 할 가능성이 더 높기 때문에 이것을 옹호합니다.
이러한 유형의 구조는 다른 사용자 그룹이 다른 유형의보기를 사용하는 마켓 플레이스 또는 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 -
-
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
-
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
'Development Tip' 카테고리의 다른 글
Javascript로 목록 이해하기 (0) | 2020.12.25 |
---|---|
.NET에서 비 차단, 단일 스레드, 비동기 웹 서버 (예 : Node.js)가 가능합니까? (0) | 2020.12.25 |
iOS 7의 기본 공유 (0) | 2020.12.25 |
Facebook Graph API 2.0에서 사용자 이름 필드 가져 오기 (0) | 2020.12.25 |
Eclipse Luna 어두운 테마, 코드 편집기 흰색 (0) | 2020.12.25 |