앱은 각 하나의 기능만 담당하도록 만들어져야 한다
그런데 다른 웹에서도 로그인앱이 필요하겠지
그러니까 app을 재사용하려면 "패키징을 해야한다" 그 앱을 다른 프로젝트에 적용해야겠지!
app을 패키징해서 다른 프로젝트에서 install하는 느낌
복붙하는 소스는 장고공식문서에서 구할수 있는데 정리해준대
============실습=============
week7_login project에서
login이라는 app을 재사용하고 싶을때!
1) 프로젝트 밖에 폴더 하나 만든다
proj라는 폴더를 하나 만든다.
2) proj으로 app 이동 (복사x)
이제 week7_login에는 login이라는 app 없다
3) proj 폴더 안에 README.rst 파일 생성
여기에 쓸 내용은 다른 곳에서 가져와서 북붙만 하면됨
https://docs.djangoproject.com/ko/2.1/intro/reusable-apps/
===== Polls ===== Polls is a simple Django app to conduct Web-based polls. For each question, visitors can choose between a fixed number of answers. Detailed documentation is in the "docs" directory. Quick start ----------- 1. Add "polls" to your INSTALLED_APPS setting like this:: INSTALLED_APPS = [ ... 'polls', ] 2. Include the polls URLconf in your project urls.py like this:: path('polls/', include('polls.urls')), 3. Run `python manage.py migrate` to create the polls models. 4. Start the development server and visit http://127.0.0.1:8000/admin/ to create a poll (you'll need the Admin app enabled). 5. Visit http://127.0.0.1:8000/polls/ to participate in the poll.
그리고 README에 한글은 되도록 쓰지 말자.
우리는 login이라는 앱을 재사용하는거니까
polls -> login으로 바꿔주면 되겠지.
**) proj라는 폴더이름보단 django-login 이런 이름을 권장. 나중에 뿌릴 때 django임을 명시하기 위하여
4) proj 폴더안에 LICENSE 파일 생성
코드 공개할 때 얘가 중요한 역할을 한다. 저작권 포괄하는 개념임. 내 컴 내에서만 하면 필요없다
근데 복붙 어디서 해,,,
근데 이걸 만드는 습관! 들이기!
일단 나는 안적음
https://www.olis.or.kr/license/licenseClassiFication.do?mapcode=010001&page=1
5) proj 폴더안에 setup.py 파일 생성
빨간글씨만 바꾸고 나머지는 복붙한거임
6) 파이선파일 아닌걸 명시해주는 파일 만들기 MANIFEST.in
include LICENSE
include README.rst
recursive-include login/static *
recursive-include login/templates *
recursive-include login/migrations *
recursive는 그 폴더 안에도 다 포함하겠다 이런뜻
static 파일도 있다면 위처럼 static도 해주는거고~~ 뭔지알지??
login/ 이거는 app이름이 login이니까!!!!
*** 근데 migrations 뺐음........ 왜지
include LICENSE
include README.rst
recursive-include login/templates *
암튼 최종적으로 이렇게 함
7) 이제 얘네 짐싸야지~~
user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/proj
$ python setup.py sdist
터미널 위치 proj로 옮기고~
tar가 압축파일
이거 있을거야 proj-dist에
이렇게! 그럼 이걸 install 해주면 되는거야
8) 이제 project에 app 없으니까 install 해줘야겠지
user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/proj
$ pip install dist/login-0.1.tar.gz
파일위치 잘보고~
9) 이제 runserver해보면 됨!
user@DESKTOP-3OU4T9D MINGW64 /e/0_lilelion7/likelion3/week7_login
$ python manage.py runserver
굿굿 파일위치 중요해
앱 재사용 끝!
팁 : 만약에 app이 수정되었으면 다시 짐싸고 install 다시 해줘야해!
'Development > Django(멋쟁이사자처럼 7기 운영진)' 카테고리의 다른 글
[멋사7기] 8주차 - 5. aws 배포하기 (2) | 2019.03.01 |
---|---|
[멋사7기] 8주차 - 3, 4. PostgreSQL 연동 이론, 설치, 실습 (0) | 2019.03.01 |
[멋사7기] 7.5주차 - 썸네일 만들기 (0) | 2019.02.21 |
[멋사7기] 7주차 - 3, 4. API 이론, 실습 (0) | 2019.02.20 |
[멋사7기] 7주차 - 1, 2. 소셜 로그인 이론, 실습 (Google) (0) | 2019.02.20 |