이콜레모 개발자 위키

Page history of Django



Title: Django | edited by Youngrok Pak at 10 years, 4 months ago.

<p><a href="https://www.djangoproject.com/">https://www.djangoproject.com/</a> 파이썬 웹 프레임웍 중 가장 널리 쓰이는 것.</p>
<h2>유용한 패키지</h2>
<h3>South</h3>
<p><a href="http://south.aeracode.org/">http://south.aeracode.org/</a> DB 마이그레이션 도구.</p>
<p>south 앱에 설치. settings.py의 INSTALLED_APPS에 다음 추가.</p>
<pre>'south',</pre>
<p>south 테이블 생성. 아쉽지만 south 자체를 위한 테이블은 원래의 syncdb로 생성한다.</p>
<pre class="p1">./manage.py syncdb</pre>
<p>첫 마이그레이션 생성</p>
<pre>./manage.py schemamigration 앱이름 --initial</pre>
<p><em>south를 적용하려면 model 코드를 작성한 후 한 번도 syncdb를 하지 않은 상태거나, 혹은 syncdb를 하고 나서 model을 다시 변경하지 않은 상태여야 함. </em></p>
<div>위 의 명령을 실행하면 앱 디렉토리 내에 migrations가 생기고 0001_initial.py에 초기 마이그레이션 코드가 생성된다. 만약 모델 코드가 DB 테이블과 싱크가 되어 있는 상태라면 다음 명령을 실행해서 초기 마이그레이션이 된 상태로 만든다.</div>
<pre>./manage.py convert_to_south 앱이름</pre>
<p>하고 나서 fake로 한 번 돌려주면 south로 마이그레이션이 다 된 상태로 간주된다.</p>
<pre>./manage.py migrate 앱이름 --fake</pre>
<p>여기까지 하면 south를 사용할 준비가 된 것이다. 그 후부터는 모델을 변경한 후 다음과 같이 실행하여 마이그레이션 코드를 자동으로 만든다.</p>
<pre>./manage.py schemamigration 앱이름 --auto</pre>
<p>그러면 migrations 디렉토리에 현재 모델과의 차이점만 반영하는 마이그레이션 코드가 생성된다. 이 마이그레이션 코드를 적용하려면 다음과 같이 실행한다.</p>
<pre>./manage.py migrate 앱이</pre>
<h3><a href="https://github.com/omab/python-social-auth">python-social-auth</a></h3>
<p>소셜 로그인 라이브러리의 종결자. <a href="https://github.com/omab/django-social-auth">django-social-auth</a>를 다른 웹 프레임워크도 지원하도록 확장한 것이다.</p>
<h3><a href="https://github.com/danielfm/django-flash">django-flash</a></h3>
<p>Action을 수행한 후의 단발성 메세지를 보여줄 수 있다.</p>
<h3>django_bash_completion</h3>
<p>./manage.py를 실행할 때 명령어를 치기가 귀찮은데, bash completion을 사용하면 tab으로 자동완성할 수 있다.</p>
<p><a href="https://github.com/django/django/blob/master/extras/django_bash_completion">https://github.com/django/django/blob/master/extras/django_bash_completion</a></p>
<p>위의 링크에서 스크립트를 다운 받아서 저장해두고, .bashrc나 .profile에서 스크립트를 source하면 된다.</p>
<pre>. ~/dev/django_bash_completion</pre>
<p>맥에서는 .profile에 넣으면 잘 된다.</p>
<h3>django-extensions</h3>
<pre>./manage.py shell_plus</pre>
<p>모델들을 미리 import 해줘서 편리하다.</p>
<h3>JSONField</h3>
<p>JSON으로 데이터를 읽고 쓸 때는 <a href="https://github.com/django-extensions/django-extensions">django-extensions</a>의 <code>JSONField</code>가 편리하다. 파이썬 dict 형태로 읽고 쓰며 DB에는 JSON 포맷으로 저장된다.</p>
<h3>AutoOneToOneField</h3>
<p><code>OneToOneField</code>를 만들어야 하는데, 없을 때는 자동으로 생성하게 하고 싶다면 <a href="https://github.com/skorokithakis/django-annoying">django-annoying</a>의 <code>AutoOneToOneField</code>가 편리하다. 다만, south로 마이그레이션을 하려면 다음과 같은 코드를 추가해줘야 한다.</p>
<pre>from south.modelsinspector import add_introspection_rules<br>add_introspection_rules([], ["^annoying\.fields\.AutoOneToOneField"])</pre>
<h3><a href="https://github.com/chrisglass/django_polymorphic">django-polymorphic</a></h3>
<p><a href="Django">Django</a> 모델의 다형성을 쉽게 쓸 수 있게 해준다.</p>
<h3>서버 디플로이먼트</h3>
<p>기본적으로 모든 wsgi 서버에 디플로이할 수 있다. <a href="uwsgi">uwsgi</a> 추천.</p>
<h3>테스트</h3>
<p style="border-color: initial; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;"><a href="http://ecolemodev.wikigrove.com/Django%20%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EC%97%90%EC%84%9C%20Selenium%20python%20%EB%8F%8C%EB%A6%AC%EA%B8%B0">Django 프로젝트에서 Selenium python 돌리기</a></p>
<h2 style="border-color: initial; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;">관련 사이트</h2>
<ul>
<li><a href="https://www.djangopackages.com/">https://www.djangopackages.com/</a> Django 관련 패키지를 모아둔 사이트</li>
<li><a href="https://www.facebook.com/groups/django/">https://www.facebook.com/groups/django/</a> 한국 Django 개발자 모임</li>
</ul>
<h2><a href="이콜레모의%20오픈소스">이콜레모의 오픈소스</a></h2>
<ul>
<li><a href="https://github.com/youngrok/djangox-mako">djangox-mako</a> <a href="Django">Django</a>에서 mako 사용하기</li>
<li><a href="https://github.com/youngrok/djangox-route">djangox-route</a> <a href="Django">Django</a>에서 컨트롤러 자동 등록</li>
</ul>
Wiki at WikiNamu