일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- django ORM
- 장고
- js
- Git
- react
- django rest framework
- java
- javascript
- Baekjoon
- PYTHON
- DRF
- HTML
- django widget
- 파이썬
- Algorithm
- AWS
- CSS
- c++
- web
- Django
- 알고리즘 풀이
- 알고리즘 연습
- form
- 파이썬 알고리즘
- 백준
- es6
- 알고리즘
- API
- MAC
- 알고리즘 문제
- Today
- Total
수학과의 좌충우돌 프로그래밍
[Django] 15. app 재사용하기 본문
안녕하세요 강민성입니다.
이번 시간에는 app 재사용에 대해서 알아보도록 하겠습니다.
우리가 app 을 기능별로 세분화 하는 이유가 바로 재사용 때문이었습니다.
이 방법을 알아보도록 하겠습니다.
app 재사용 하는 법
재사용의 원리
app 을 재사용하기 위해서는 재사용할 app 을 먼저 패키징 해줘야합니다.
패키징이라고 함은 app 을 다른 프로젝트에서 가져가서 사용할 수 있도록 포장하는 일이라고 할 수 있습니다.
그리고 이미 포장을 푸는 방법은 해본 적이 있으실 겁니다.
pip install {패키지 이름}
다음과 같은 방식으로 패키지를 풀어줄 수 있습니다.
패키징 하는 법
그럼 패키징하는 방법에 대해서 알아보겠습니다.
패키징을 하기 위해서는 4개의 파일이 필요합니다.
4개의 파일의 이름과 각각의 역할을 다음과 같습니다.
1. README.rst : 패키지의 소개 / 사용설명서 / 기능 명세서
2. LICENSE : 라이센스
3. setup.py : 설치의 방법 과정
4. MANIFEST.in : 파이썬 파일이 아닌 파일들 명시
4개의 파일의 이름과 각각의 역할을 다음과 같습니다.
저번 포스팅에서 다루었던 thumbnailapp 을 패키징 해보도록 하겠습니다.
저번 시간 포스팅으로 이동하려면 여기를 클릭하세요.
먼저 프로젝트 폴더와 형제관계에 있는 빈 디렉토리 proj 을 만들어주겠습니다.
그리고 재사용할 app 인 thumbnailapp 을 proj 폴더로 이동시켜 줍니다.
이제 proj 폴더 안에 위에서 언급 했던 4개의 파일을 모두 만들어주고 이를 패키징 할 것입니다.
README.rst 부터 만들어보겠습니다.
사용하는 app 의 이름에 따라 thumbnailapp 을 바꿔주면 되겠습니다.
추가적으로 이 부분에 한글을 사용하는 것은 되도록 지양합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | ===== thumbnailapp ===== thumbnailapp is a simple Django app to conduct Web-based thumbnailapp. For each question, visitors can choose between a fixed number of answers. Detailed documentation is in the "docs" directory. Quick start ----------- 1. Add "thumbnailapp" to your INSTALLED_APPS setting like this:: INSTALLED_APPS = [ ... 'thumbnailapp', ] 2. Include the thumbnailapp URLconf in your project urls.py like this:: path('thumbnailapp/', include('thumbnailapp.urls')), 3. Run `python manage.py migrate` to create the thumbnailapp models. 4. Start the development server and visit http://127.0.0.1:8000/admin/ to create a thumbnailapp (you'll need the Admin app enabled). 5. Visit http://127.0.0.1:8000/thumbnailapp/ to participate in the thumbnailapp. | cs |
다음으로는 LICENSE 입니다.
django document 에서도 이렇게 설명을 하고 있습니다.
마찬가지로 파일만 만들고 건너 뛰도록 하겠습니다.
django-polls/LICENSE
파일을 생성합니다. 라이선스 선택은 이 튜토리얼의 범위를 벗어나므로, 라이선스 없이 공개된 코드는 쓸모없음 을 의미한다는 것만 말해두겠습니다. Django와 많은 Django 호환 앱들이 BSD 라이센스로 배포되고 있습니다; 그러나 자신의 라이센스를 자유롭게 선택할 수 있습니다. 라이선스 선택이 누군가 여러분의 코드를 사용하는데 영향이 미칠수 있다는 사실은 알고 있어야합니다.
다음으로 설치방법이 담긴 setup.py 입니다.
사용하실 때 setup 의 name과 description 부분을 수정 후 사용하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import os from setuptools import find_packages, setup with open(os.path.join(os.path.dirname(__file__), 'README.rst')) as readme: README = readme.read() # allow setup.py to be run from any path os.chdir(os.path.normpath(os.path.join(os.path.abspath(__file__), os.pardir))) setup( name='thumbnailapp', version='0.1', packages=find_packages(), include_package_data=True, license='BSD License', # example license description='method of using thumbnail ', long_description=README, url='https://www.example.com/', author='Your Name', author_email='yourname@example.com', classifiers=[ 'Environment :: Web Environment', 'Framework :: Django', 'Framework :: Django :: X.Y', # replace "X.Y" as appropriate 'Intended Audience :: Developers', 'License :: OSI Approved :: BSD License', # example license 'Operating System :: OS Independent', 'Programming Language :: Python', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Topic :: Internet :: WWW/HTTP', 'Topic :: Internet :: WWW/HTTP :: Dynamic Content', ], ) | cs |
마지막으로 파이썬 파일이 아닌 파일을 명시해주는 MANIFEST.in 입니다.
include 를 이용하여 파일을,
recursive-include 를 이용하여 디렉토리안의 전체 파일을 지정해줄 수 있습니다.
1 2 3 4 | include LICENSE include README.rst recursive-include thumbnailapp/static * recursive-include thumbnailapp/templates * recursive-include thumbnailapp/migrations * | cs |
이제 마지막으로 현재까지의 proj 폴더를 묶어주면 됩니다.
그러기 위해서는 proj 디렉토리로 이동해서 다음과 같은 명령어를 입력합니다.
그 결과,
dist라는 디렉토리와 그 안의 새로운 파일이 생겼는데
이 파일이 thumbnailapp 의 내용을 담고 있는 파일입니다.
pip install thumbnailapp-0.1.tar.gz
저 파일의 이름으로 install 해줌으로서 app 을 사용할 수 있습니다.
현재 상태에서 thumbnail project 의 서버를 켜면 error가 날 것입니다.
아무 app도 없기 때문이죠.
이제 thumbnailapp 을 install 해준 후 서버를 켜보도록 하겠습니다.
먼저 proj 디렉토리안에서
pip install dist/thumbnailapp-0.1.tar.gz
명령어를 입력하면 설치가 완료될 것입니다.
그 후 다시 서버를 돌려보면 문제없이 서버가 켜지는걸 확인 할 수 있습니다.
'웹프로그래밍 > Django' 카테고리의 다른 글
[Django] requirements.txt 를 통한 패키지 종속성 관리 (0) | 2019.03.06 |
---|---|
[Django] 16. postgreSQL 사용하기! (0) | 2019.03.05 |
[Django] 썸네일 만들기 (2) | 2019.03.02 |
[Django] 14. API를 통한 naver 지도 사용하기 (0) | 2019.03.01 |
[Django] 13. 소셜 로그인 구현( kakao,google, fackbook 등) (10) | 2019.03.01 |