쿠키 커터 플라스크
cookiecutter용 플라스크 템플릿입니다. (Python ≥ 3.8 지원)
최신 버전의 템플릿에서 생성된 예제 프로젝트는 이 저장소를 참조하세요.
지금 사용하세요
Docker (새 프로젝트를 생성할 때 선호되는 방법)
$ git clone https://github.com/cookiecutter-flask/cookiecutter-flask.git
$ cd cookiecutter-flask
# Basic usage (You will be prompted to provide basic information about your application)
$ ./cookiecutter-docker.sh
full_name [Steven Loria]:
...
# The repository for your flask app will be created in a directory with the name
# chosen in "package import name" question (default ./my_flask_app/)
# Additional arguments are available
$ ./cookiecutter-docker.sh --help
Usage: ./cookiecutter-docker.sh [OPTIONS]
Options:
-b, --build Build Docker image before running cookiecutter
-h, --help Show this message and exit
기준
표준 지침을 사용하는 경우 Python ≥ 3.8이 필요합니다. 가상 환경(예: virtualenv
)이 권장됩니다.
pip3 install cookiecutter
cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git
기본 정보(이름, 프로젝트 이름, 앱 이름 등)에 대한 질문이 표시됩니다. 이 정보는 새 프로젝트에 사용됩니다.
구성 및 실행
프로젝트 코드를 생성한 후 새 앱을 실행하려면 몇 가지 추가 단계를 수행해야 합니다. 생성된 프로젝트의 README에는 애플리케이션을 구성하고 실행하는 방법이 나와 있습니다. (여기에서 README 템플릿을 볼 수 있습니다).
특징
- 시작 템플릿이 포함된 Bootstrap 5 및 Font Awesome 6
- 기본 사용자 모델을 갖춘 Flask-SQLAlchemy
- Flask-Migrate를 통한 손쉬운 데이터베이스 마이그레이션
- Twelve-Factor 앱에 따른 환경 변수 구성
- 로그인 및 등록 양식이 포함된 Flask-WTForms
- 인증을 위한 Flask-로그인
- 비밀번호 해싱을 위한 Flask-Bcrypt
- PaaS(예: Heroku)에 배포하기 위한 프로필
- 테스트용 pytest 및 Factory-Boy(예제 테스트 포함)
- 간단한 명령으로 구성된 Flask의 Click CLI
- webpack을 사용한 CSS 및 JS 축소
- 프런트엔드 패키지 관리를 위한 npm 지원
- Flask-Cache를 사용한 캐싱
- 유용한 디버그 도구 모음
- 모범 사례 활용: Blueprint 및 Application Factory 패턴
스크린샷
영감
- Flask 앱 구조화
- @JackStouffer의 플라스크 재단
- @cburmeister의 플라스크 뼈
- @mjhea0의 플라스크 기본 등록
- 플라스크 공식 문서
특허
MIT 라이센스를 받았습니다.
변경 내역
미출시
- 모든 노드 종속성을 최신 버전으로 업데이트
- 템플릿 CI에 Github Actions를 사용하도록 전환
- Cookiecutter 옵션으로 Node 10에 대한 지원을 제거합니다.
- 다단계 빌드를 보다 효율적으로 사용하도록 Docker 이미지를 리팩터링했습니다.
- 템플릿으로 생성된 프로젝트는 CI에 Github 작업을 사용합니다.
- Webpack을 5.x로 업그레이드
- Python 3.6, 3.7 및 3.8 지원 중단
- Python 3.9, 3.10, 3.11 및 3.12 지원이 추가되었습니다.
- 노드 18 및 20 LTS가 추가되었습니다.
- 노드 12, 14, 16 LTS를 제거했습니다.
18.0.0 (2018/09/09)
- CalVer(
YY.MINOR.MICRO
)를 사용하세요. - Bootstrap 4로 업그레이드하세요. @adawalli 및 @Hiyorim에게 감사드립니다.
- 구성을 위해 환경 변수를 사용하십시오.
- Pipenv에 대한 지원을 추가합니다.
- Python 및 노드 종속성을 업그레이드합니다.
0.13.0 (2017년 6월 25일)
- 프런트엔드 자산을 구축하려면 webpack을 사용하세요. 프런트엔드 종속성은 NPM과 함께 설치됩니다. Flask-Assets 및 bower.json을 제거합니다. @wroberts님, 감사합니다.
0.12.0 (2016년 11월 6일)
0.11.1(2016년 11월 6일)
- 0.11 문서에 따라 첫 번째 매개변수를
Flask
에 올바르게 전달합니다. @aliavni에게 감사드립니다. - Heroku에서 배포를 수정하려면 종속성으로 setuptools 및 휠을 제거하세요. @카발리스트님 감사합니다.
- 새로운 버전의 bcrypt와의 호환성을 위해 User.password를 바이너리 필드로 만듭니다. @Cabalist에게 다시 한 번 감사드립니다.
0.11.0 (2016년 9월 10일)
- MYFLASKAPP_ENV 대신 FLASK_DEBUG 시스템 환경 변수를 사용하여 개발 및 프로덕션 환경에 대한 다양한 구성을 제어합니다.
0.10.1 (2016년 8월 28일)
0.10.0 (2016년 8월 28일)
- 플라스크 0.11로 업데이트하세요.
- CLI 명령에는 Flask-Script 대신 Click을 사용하세요.
0.9.0 (2016년 3월 6일)
- 오래된 요구 사항을 업데이트합니다.
- CSRF 보호를 추가합니다.
- Travis 빌드에서
lint
명령을 실행합니다. - Python 3.5에 대해 테스트합니다.
0.8.0 (2015년 11월 9일)
- 오래된 요구 사항을 업데이트합니다.
-
lint
, clean
및 urls
관리 명령을 추가합니다. - isorate를 추가하세요.
이러한 기여에 대해 @andreoliw에게 감사드립니다.
0.7.0 (2015년 4월 14일)
- mitsuhiko/flask#1135에 따라 확장 가져오기 스타일을 플라스크_*로 업데이트합니다.
- 오래된 요구 사항을 업데이트합니다(Werkzeug, Flask-WTF, WTForms, Flask-Bcrypt, Flask-DebugToolbar, Flask-Migrate, Bootstrap, jQuery). Flask-Migrate의 중요한 패치를 알려준 @bsmithgall에게 감사드립니다.
0.6.0 (2014년 12월 1일)
- Travis에서 cookiecutter를 테스트합니다. @joshfriend님 감사합니다.
- 오래된 요구사항 업데이트(Flask-WTF, Flask-Migrate, Flask-DebugToolbar)
0.5.0 (2014년 9월 29일)
- .travis.yml을 수정하세요.
- 오래된 요구사항 업데이트(Flask-WTF, WTForms, Flask-SQLAlchemy, jquery, Bootstrap)
0.4.3 (2014년 7월 27일)
-
BaseFactory
클래스를 추가합니다. - compat.py 모듈을 추가합니다.
- 테스트는 Python 3에서 통과됩니다.
0.4.2 (2014년 7월 27일)
- Factory-boy >= 2.4.0 구문으로 팩토리를 업데이트합니다.
- 오래된 요구 사항을 업데이트합니다.
0.4.1 (2014년 6월 7일)
- 오래된 요구사항 업데이트(Werkzeug 0.9.6, WTForms 2.0)
- home.html에서 일치하지 않는 div 태그 수정(@level09에게 감사드립니다)
0.4.0 (2014년 4월 19일)
- 덜 자세한 외래 키 열에 대해 ReferenceCol을 추가합니다.
- 모델에 정수 기본 키를 추가하기 위한 SurrogatePK 믹스인을 추가합니다.
- CRUD 편의 메서드가 있는 기본 Model 클래스를 추가합니다.
- BCrypt 암호화 복잡성 설정을 수정합니다. 테스트가 훨씬 빨라졌습니다.
- ReferenceCol 사용법을 표시하는 역할 모델을 추가합니다.
- pytest로 전환하세요.
- 오래된 요구사항을 모두 업그레이드하세요.
- 더 많은 테스트 예시.
- cookiecutter.json에서 "연도"를 제거합니다(필요한 경우 라이센스만 변경).
0.3.2 (2014년 2월 26일)
0.3.1 (2014년 2월 20일)
- cookiecutter.json에서 기본 연도를 업데이트합니다. @Omeryl님 감사합니다
- 웹 테스트에서 리디렉션을 올바르게 테스트합니다. @Widdershin님 감사합니다
- 탐색 형식의 POST 작업을 수정합니다. @Widdershin님 감사합니다.
- Bootstrap(3.1.1) 및 jQuery(2.1.0) 업데이트
- Bower에 대한 선택적 지원.
- 축소된 자산은 개발 환경에서 사용되지 않습니다.
0.3.0 (2013년 12월 8일)
- 보다 모듈화된 구성: 각 청사진에는 디렉토리에 자체 보기, 모델 및 양식이 포함되어 있습니다. 템플릿과 정적 자산을 위한 단일 디렉터리가 여전히 있습니다.
- 비밀번호 해싱에는 Flask-Bcrypt를 사용하세요.
- 인증을 위한 Flask-로그인.
- 간단한 테스트 설정.
DbTestCase
의 하위 클래스를 생성하면 됩니다. - 플라스크 테스트 지원.
- 테스트 팩토리에는 Factory-Boy를 사용하세요.
- 기능 테스트에는 WebTest를 사용하세요.
- Flask-Debug 도구 모음을 추가합니다.
- Flask-Migrate를 사용한 마이그레이션.
- Flask-Cache를 사용한 캐싱.
- 오류 페이지 템플릿 추가(404, 401, 500)
- 아이콘용 Font Awesome 4.0.3을 추가합니다.
0.2.0 (2013년 9월 21일)
- Manage.py 스크립트 추가
- CSS 및 JS 번들링+축소를 위한 Flask 자산 추가
- MYFLASKAPP_ENV 시스템 환경 변수에 의해 제어되는 개발 및 프로덕션 환경에 대해 서로 다른 구성을 사용합니다.
- 블루프린트와 애플리케이션 팩토리 패턴을 사용하세요.
simple
분기에서는 이를 사용하지 않습니다.
0.1.0 (2013년 8월 20일)
- 첫 번째 반복
- 부트스트랩 3 최종
- 실사용자 모델 및 등록