완숙의 블로그

[Django] Week 8-2 app 재사용 Practice 본문

Programing Language/Web_Django

[Django] Week 8-2 app 재사용 Practice

완숙 2019. 3. 12. 14:29

지금까지 만들었던 소셜 로그인 프로젝트에서 시작해보자.

 

소셜로그인을 수행하는 앱 이름은, 내프로젝트 기준으로 goologin 이다.

이 녀석을 패키징 해보자.

 

  1. 먼저 프로젝트 파일 안에 새로운 폴더를 만들자.

    스크린샷 2019-03-11 오후 4 37 17

     

  2. 여기서 이 만든 폴더 pack_ 안에 goologin 이라는 앱 자체를

    이동 해주자! 이동이다.

    스크린샷 2019-03-11 오후 4 38 56

    이 폴더의 의미는, 나중에 이 폴더 기반으로 패키징을 하겠다!

    하고 알려주는 역할이다.

     

  3. 그리고, 이 폴더에 필요한 4가지 파일을 만들어줄거다.

    스크린샷 2019-03-11 오후 4 41 48

  1. 그럼 이 안에 무엇을 넣어줘야 할까?

    장고 documentation

    여기 들어가면 알려준다.

    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도 바꿔주고. 일단은 그냥 하는 방법만 보자.

     

  2. 자 이제 떠날 준비.

    일단 패키징 할 폴더로 이동하자.

     

    $ cd pack_
    

     

    짐싸! 묶어버리자!

    $ python setup.py sdist
    

     

  3. 그러면 dist 폴더가 생성되는데,

    안에 보면, goologin-0.1.tar.gz 이라는 녀석이 하나 생길 거야.

    이게 패키지라고 생각하면 돼.

     

  4. 그리고 아까 내가 만든 프로젝트를 서버돌리면 당연히 안될거야

    왜냐면 지금 goologin 폴더를 다른데로 옮겼기 때문이지.

    그러면 내가 이 패키지를 설치하면 바로 되겠지??

     

  5. 이 패키지 파일이 있는 녀석의 위치를 확인하고,

    $ pip install pack_/dist/goologin-0.1.tar.gz
    

    설치하자! (상대경로로 했어요)

 

  1. 서버를 돌려볼까?

    아주 잘뜬다! 정상작동 ㅎㅎ.

     

  2. 근데 로그인이라는 앱이 없음에도 불구하고 잘 실행이 된다.

    패키지만 설치하니까 구동이 된다!

     

 

 

Comments