지금까지 만들었던 소셜 로그인 프로젝트에서 시작해보자.
소셜로그인을 수행하는 앱 이름은, 내프로젝트 기준으로 goologin
이다.
이 녀석을 패키징 해보자.
먼저 프로젝트 파일 안에 새로운 폴더를 만들자.
여기서 이 만든 폴더
pack_
안에goologin
이라는 앱 자체를이동 해주자! 이동이다.
이 폴더의 의미는, 나중에 이 폴더 기반으로 패키징을 하겠다!
하고 알려주는 역할이다.
그리고, 이 폴더에 필요한 4가지 파일을 만들어줄거다.
그럼 이 안에 무엇을 넣어줘야 할까?
여기 들어가면 알려준다.
README.rst
===== 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.
여기서는, polls 라는 앱을 재사용하려면 어떤 걸 해야되는지 알려준다.
이거 따라서 해주면 된다.
나중에 읽을 사람을 위해서 이 앱에 사용하는 이름을 바꿔주자.
===== goologin ===== goologin is a simple Django app to conduct Web-based goologin. For each question, visitors can choose between a fixed number of answers. Detailed documentation is in the "docs" directory. Quick start ----------- 1. Add "goologin" to your INSTALLED_APPS setting like this:: INSTALLED_APPS = [ ... 'goologin', ] 2. Include the goologin URLconf in your project urls.py like this:: path('goologin/', include('goologin.urls')), 3. Run `python manage.py migrate` to create the goologin 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/goologin/ to participate in the poll.
지금은 제대로 뭘쓰자는게 아니고, 이렇게 입력을 해주면 된다는 걸 보여주는 거다.
그리고 앱 이름은
django-goologin
이런식으로 만드는게 더 좋다.그리고 한글로 README 작성하지말자,,,,,,
인코딩에러 ㅎㅎ.
LICENCE
장고 웹페이지에 안나와 있는데,
이게 없다면 쓸모없음 과 동일한 내용이다.
웹서비스 런칭을 했다면 이 내용이 중요해진다.
지금은 그냥 냅두고, 나중에 다시 배워보자.
MANIFEST.in
우리
pack_
안을 보면,python
파일 말고 다른 녀석들도 있다.이걸 제어하기 위해 이 파일을 만들어줘야 한다.
include LICENSE include README.rst recursive-include goologin/static * recursive-include goologin/migrations * recursive-include goologin/templates *
내 앱의 특징에 따라 가져올 녀석을 추가해주자.
*
을 찍으면 모든 녀석을 포함하라는 얘기.그 중 static, migrations, templates 포함해라.
지금은 굳이 필요없으니, templates 만 포함하자.
setup.py
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='goologin', ## 이 녀석 바꿔주자. version='0.1', packages=find_packages(), include_package_data=True, license='BSD License', # example license description='A simple Django app to conduct Web-based polls.', 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', ], )
이름을 바꿔주자.
url도 바꿔주고. 일단은 그냥 하는 방법만 보자.
자 이제 떠날 준비.
일단 패키징 할 폴더로 이동하자.
$ cd pack_
짐싸! 묶어버리자!
$ python setup.py sdist
그러면
dist
폴더가 생성되는데,안에 보면,
goologin-0.1.tar.gz
이라는 녀석이 하나 생길 거야.이게 패키지라고 생각하면 돼.
그리고 아까 내가 만든 프로젝트를 서버돌리면 당연히 안될거야
왜냐면 지금
goologin
폴더를 다른데로 옮겼기 때문이지.그러면 내가 이 패키지를 설치하면 바로 되겠지??
이 패키지 파일이 있는 녀석의 위치를 확인하고,
$ pip install pack_/dist/goologin-0.1.tar.gz
설치하자! (상대경로로 했어요)
서버를 돌려볼까?
아주 잘뜬다! 정상작동 ㅎㅎ.
근데 로그인이라는 앱이 없음에도 불구하고 잘 실행이 된다.
패키지만 설치하니까 구동이 된다!