Flask와 Canjs를 이용한 다국어 어플리케이션 토대
canjs와 python flask를 이용한 다국어 어플리케이션 제작을 위한 토대입니다.
Flask 부분은 Matt Wright님의 글에서 영감을 얻었습니다.
Flask-Canjs-i18n-Boilerplate 소스
특징
- Flask/Canjs 연동.
- 다국어 지원.
- 사용자 CRUD 구현.
- 사용자 following/followers 기능 구현.
- 소셜 네트워크 연결 구현.
- 페이스북
- 기타 (TODO)
- RESTful API 구현.
- 반응형 웹 디자인.
- 구글 크롤러 친화적 url('#!').
- 간편한 개발 문서 제작.(Sphinx)
- 쉬운 테스팅. (nosetests)
- 다양한 브라우저 호환 (IE7, IE8, IE9, IE10, Firefox, Chrome, Opera..)
- 더 많은 기능을 윈하신다면, 함께 만들어 가요! :D
써보기
http://flask-canjs-i18n-boilerplate.ap01.aws.af.cm/
어떻게 동작하나요?
환경
클라이언트 사이드
- Canjs, 클라이언트 사이드 자바스크립트 프레임워크.
- RequireJS, 자바스크립트 파일•모듈 로더.
- Initializr, HTML5 템플릿.
- Bootstrap, 프론트엔드 프레임워크.
- Bootstrap-ie7, 부트스트랩 3에서 IE7을 지원을 도움.
- mustache, 템플릿 엔진.
- i18next, 자바스크립트 다국어 도구.
- Font Awesome, 크기 변환등 개별화 가능한 백터 아이콘 모음을 제공.
- typeahead.js, 텍스트 자동 완성 라이브러리.
- spin.js, 작업중 활동 표시기.
- Placeholders.js, 자바스크립트를 통해 HTML5의 placeholder 속성을 사용 할 수 있게 함.
- Jade(pyjade), 파이썬용 Jade 템플릿 엔진 확장.
- jQuery, 작고 빠르고 유용한 자바스크립트 라이브러리.
- jQuery BBQ, HTML5 hashchange 이벤트 사용을 도와줌.
서버 사이드
- Flask, 가벼운 파이썬 프레임워크.
- Flask-Babel, 플라스크용 다국어 확장.
- Flask-Gravatar, 플라스크용 그라바타 확장.
- Flask-Security, 플라스크용 로그인 보안 확장.
- Flask-Social, Flask-Security에서 Oauth를 지원하는 확장.
- Flask-Assets, 자바스크립트와 스타일시트를 관리하는 플라스크용 확장.
- Flask-SQLAlchemy, SQLAlchemy사용을 위한 플라스크용 확장.
- Flask-WTF, WTForms 통합 확장.
- Flask-Cache, 캐쉬 사용을 도와주는 플라스크용 확장.
- Alembic, SQLAlchemy 데이터베이스 마이그레이션 관리 도구.
- Celery, 분산 메시지 전달 기반의 비동기 작업 queue/job 큐.
디버깅과 테스팅
- flask-debugtoolbar, django-debug-toolbar를 플라스크 용으로 포팅한 디버깅 툴바.
- nose, 멋진 파이썬용 테스팅 도구.
- BusterJS, 자바스크립트 테스팅 도구.
문서 생성
설치
도구 설치
- virtualenv, 분리된 파이썬 환경을 만들어줍니다.
- virtualenvwrapper, virtualenv를 보다 편리하게 사용하도록 돕습니다.
프로젝트 복제
$ git clone https://github.com/dorajistyle/flask-canjs-i18n-boilerplate.git
$ cd flask-canjs-i18n-boilerplate.git
프로젝트를 위한 virtualenv 생성
$ mkvirtualenv flask-canjs-i18n-boilerplate
필요 라이브러리 설치
$ pip install -r requirements.txt
데이터베이스 마이그레이션
$ alembic revision --autogenerate -m "Alembic initilized boilerplate tables."
$ alembic upgrade head
관리자 추가
'admin@github.com'와 'password'로 로그인 하시면 됩니다.$ python manage.py init_user
설정
설정 값을 올바르게 설정해야 합니다.(데이터베이스, 메일, 소셜 네트워크 정보...)
- application/settings.py엔 서버 사이드 설정이 들어 있습니다.
- application/frontend/static/js/settings.js엔 클라이언트 사이드 설정이 들어 있습니다.
- ./alembic.ini엔 alembic설정이 들어있습니다.
번역
- 서버 사이드 번역(Babel)은 applications/frontend/translations 폴더에 있습니다.
- 클라이언트 사이드 번역(i18next)은 applications/frontend/static/locales 폴더에 있습니다.
바벨 번역 컴파일
$ python tr_compile.py
사용
어플리케이션 실행
$ python wsgi.py
어플리케이션 프로파일 실행
$ python profile.py
문서 생성
$ python generate_documents.py
정적 폴더 최적화
Nodejs 와 RequireJS가 설치되어 있어야 합니다.더 자세한 문서를 원하신다면 다음을 클릭하세요. RequireJS Optimizer.
$ optimize_static.sh
테스트
$ nosetests
아래의 테스트 스크립트를 이용하셔도 됩니다.
$ python run_nosetests.py
사용권
Flask-canjs-i18n-boilerplate는 MIT license를 따릅니다.
by 月風