티스토리 뷰

1. 장고 설치

python -m pip install django



2. 장고 버전 확인

python -m django --version



3. 장고 커맨드라인 명령어 리스트 확인.

django-admin help


위의 명령어를 이용하면 아래와 같은 django-admin으로 사용할 수 있는 명령어의 리스트가 보여지게 됩니다.

[django]

    check

    compilemessages

    createcachetable

    dbshell

    diffsettings

    dumpdata

    flush

    inspectdb

    loaddata

    makemessages

    makemigrations

    migrate

    runserver

    sendtestemail

    shell

    showmigrations

    sqlflush

    sqlmigrate

    sqlsequencereset

    squashmigrations

    startapp

    startproject

    test

    testserver


django-admin은 Django의 관리 작업을 위한 커맨드 라인입니다.

하지만 django-admin만으로 Django를 관리 작업할 수 있는 것은 아닙니다.

Django는 장고를 관리하기 위한 세 가지 방법을 제공합니다.


django-admin <command> [options]

python -m django <command> [options]

python manage.py <command> [options]


이 중에 manage.py는 Django 프로젝트를 생성하면 생기는 폴더 안에 위치하고 있습니다.

셋 중에 어떤 방법으로 Django를 관리해도 전혀 상관이 없다고 합니다.



4. Django 주요 명령어

1) startapp : 앱을 생성합니다.

2) runserver :  서버를 실행합니다.

3) createsuperuser : 관리자를 생성합니다.

4) makemigrations app : app의 모델 변경 사항 체크합니다.

5) migrate : 변경 사항을 DB에 반영합니다.

6) shell : 쉘을 통해 데이터를 확인합니다.

7) collectstatic : 정적자원(css, html 등) 재수집(동기화)



5. Django 커맨드 라인 명령어 간략 설명.

1) check : 시스템 체크 프레임 워크를 사용하여 장고 프로젝트 전체를 검사하는 명령어. 기본적으로 모든 앱이 검사되며 앱 라벨 목록을 인수로 제공하여 앱의 하위 집합을 확인할 수 있다.


2) compilemessages : makemessages를 사용한 이후에 컴파일 하는 것으로 언어별로 설정하려면 --locale, -l에 옵션을 주면 된다고 한다.


3) createcachetable : 설정 파일의 정보를 사용하여 Database cache backend와 함께 사용할 캐시 테이블을 만든다고 합니다.

사용법은 다음과 같습니다.

python manage.py createcachetable --databases DATABASE

=> 캐시 테이블이 생성 될 Database를 지정하는 것입니다.


4) dbshell : Django의 설정에 지정된Database 엔진에 대한 커맨드 라인 클라이언트를 실행합니다.

기본으로 Django는 sqllit3를 기본값으로서 설정되어 있기에 설정에서 Database 엔진을 따로 설정하고 PostgreSQL, MySQL, SQLite, Oracle 각각의 옵션을 이용해 실행하면 됩니다.

python manage.py --database DATABSE 와 같이 사용할 수 있습니다. (Options. psql, mysql, sqllit3, sqlplus)


5) diffsettings : Django의 기본 설정과 달라진 점을 보여줍니다.

Options.

--all, --default MODULE, --ouput {hash, unified}


6) dumpdata : 원래 설명은 무슨 말인지 잘 모르겠으나.. Database의 데이터를 stdout으로 Database의 내용을 뽑아준다고 합니다.

뒤에 나올 loaddata와 함께 사용하면 Database를 백업하고 다시 로드해올 수 있습니다.

예시 : python manage.py dumpdata app_label[.ModelName] --format JSON --output output.json --indent 2

--format FORMAT : 출력 형식을 지정합니다. 기본값은 JSON입니다.

--indent INDENT : 출력 데이터에 사용할 들여쓰기 공간 수를 지정합니다. (설정 안해주면 한 줄로 나온답니다)

--exclude EXCLUDE : 특정 앱 또는 모델이 덤프되는 것을 방지합니다. 모델 이름을 지정하면 앱이 아닌 해당 모델로 출력이 제한되게 됩니다. 앱과 모델의 이름을 함께 사용할 수도 있습니다.

--database DATABASE : 데이터를 덤프할 Database를 지정합니다. (지정하지 않으면 현재 사용중인 Database가 선택됩니다)

--output OUTPUT : 데이터를 덤프해서 쓸 파일 명을 지정합니다. 이 옵션이 있을때 --verbosity가 0보다 큰 경우 진행 막대가 터미널에 표시됩니다.


7) flush : migrations이 적용된 테이블을 제외하고 모든 데이터를 제거하고 사후 동기화 핸들러를 다시 실행합니다. 빈 Database에서 시작하여 모든 마이그레이션을 다시 실행하려면 Database를 삭제했다가 다시 만든 다음 마이그레이션을 실행해야합니다.

python manage.py flush --database DATABASE

=> 특정 Database를 초기화 한다. 설정하지 않으면 현재 사용중인 Database가 삭제된다.


8) inspectdb : Database의 데이터 구조를 models.py로 생성해 준다.

python manage.py inspect > models.py

=> 데이터베이스 구조를 models.py 파일로 만든다. CharField의 최대값이 -1로 되어 있는 것만 수정해주면 된다고 한다.

python manage.py inspect TABLE > models.py

--database DATABASE : 사용할 Database를 지정한다.(기본값은 사용중인 Database)


9) loaddata : dumpdata와 같이 사용하여 데이터베이스의 내용을 백업해 두었다가 다시 불러올 수 있는 기능입니다.

--database DATABASE : 데이터를 넣을 Database를 지정합니다.

--ignorenonexistent, -i : 제거 되었을 수 있는 필드와 모델을 무시합니다.

--format FORMAT : 불러올 데이터 타입을 지정합니다.


10) makemessages : 언어파일 경로에 각 언어별로 폴더가 생성된다. settings.py 에서 언어 목록을 설정하고 makemessages 명령을 내리면 언어파일 경로에 언어별로 폴더가 생긴다. django.po 파일이 생성되면 파일을 열어서 수정하면 된다고 한다.


11) makemigrations : 모델에 감지된 변경 사항을 기반으로 새로운 마이그레이션을 만듭니다. 

--noinput : 모든 사용자 프롬프트를 표시하지 않습니다.

--empty : 수동 편집을 위해 지정된 앱에 대해 빈 마이그레이션을 출력합니다.

--dry-run : 실제로 마이그레이션 파일을 디스크에 작성하지 않고 어떤 마이그레이션이 수행되는지 보여줍니다. --verbosity 3 옵션과 함께 사용할 시 작성될 완전한 마이그레이션 파일도 표시됩니다.

--merge : 마이그레이션 충돌을 수정할 수 있다는데 무슨 의미인지는 모르겠습니다.

--name NAME : 생성될 마이그레이션 이름을 지정할 수 있습니다.

--check : 마이그레이션 하지 않은 모델의 변경이 감지되면 makemigrations가 0이 아닌 상태로 종료합니다.


12) migrate : 데이터베이스 상태를 현재 모델 및 마이그레이션과 동기화합니다.


13) runserver : 서버를 실행합니다.

django-admin runserver [addport]

ex) django-admin runserver 80

ex) django-admin runserver localhost:80

ex) django-admin runserver 1.2.3.4:80


14) sendtestemail : 지정한 수신자에게 테스트 메일을 보내 장고를 이용한 메일 전송이 작동하는지 확인합니다.

ex) django-admin sendtestemail foo@example.com bar@example.com

--managers : main_managers()를 이용하여 MANAGERS에 명시된 이메일 주소로 메일을 보냅니다.

--admins : main_admins()를 이용하여 ADMINS에 명시된 이메일 주소로 메일을 보냅니다.


15) shell : 파이썬 대화형 인터프리터를 실행합니다.

--interface {ipython, bpython, python} : 


16) showmigrations : 프로젝트의 이전 마이그레이션들을 표시하는 것인듯합니다.


17) sqlflush : flush 명령에 대해 실행될 SQL 문을 표시합니다.


18) sqlmigrate : 명명된 마이그레이션의 SQL을 표시합니다. 사용하기 위해선 활성된 데이터베이스 연결이 필요합니다. 

--backwords : 마이그레이션 적용을 취소하기 위한 SQL을 생성합니다.


19) sqlsequencereset : 지정된 앱 이름에 대한 시퀀스를 재설정하기 위한 SQL문을 표시합니다. 시퀀스는 일부 데이터베이스 엔진이 자동으로 증가하는 필드에 사용할 수 있는 다음 번호를 추적하는데 사용하는 인덱스입니다.


20) squashmigrations : 마이그레이션이 너무 많을때 가능한 더 적은 수의 마이그레이션으로 압축하는 것.


21) startapp : 장고 앱을 만드는 명령어.

ex) django-admin startapp NAME [directory]


22) startproject : 현재 디렉토리 또는 지정된 대상에 주어진 프로젝트 이름에 대한 Django 프로젝트 디렉토리 구조를 생성합니다.

ex) django-admin startproject NAME [directory]


23) test : 설치된 모든 앱에 대한 테스트를 실행합니다. 지정하여 테스트를 실행할 수도 있습니다.

ex) django-admin test LABEL
--parallel [N] : 병렬 프로세스를 이용하여 테스트를 빠르게 수행합니다. 이 옵션을 사용하기 위해서는 tblib 패키지가 설치되어 있어야 합니다. ( pip install tblib )


24) testserver : 개발을 위한 테스트서버로 실질적인 서비스의 서버로 권고하지 않음. 멀티스레드와 https가 지원되지 않는다. 어떻게 사용하는지는 모르겠다...

ex) django-admin testserver mydata.json



6. 앱에서 제공하는 명령들.

1) changepassword : Dajngo authentication system(django.contrib.auth)이 설치된 경우에만 사용할 수 있는 명령어. 유저의 비밀번호를 바꾼다.

django-admin changpassword [<username>]

ex) django-admin changepassword ringo


2) createsuperuser : Dajngo의 인증 시스템(django.contrib.auth)이 설치된 경우에만 사용할 수 있는 명령어. 모든 권한을 가진 슈퍼 유저 계정을 만든다. 슈퍼 유저 계정은 암호를 수동으로 설정 될 때까지 로그인을 할 수 없습니다.


3) remove_stale_contenttypes : Django의 conenttypes app(django.contrib.contenttypes)가 설치된 경우에 사용이 가능한 명령어. Database에서 삭제된 모델의 오래된 콘텐츠 타입를 삭제합니다. 삭제된 콘텐츠 형식에 종속된 개체들도 모두 삭제됩니다. 삭제 작업을 진행하기전에 삭제된 개체 목록이 표시됩니다.


4) clearsessions : sessions 클리어.



7. Default options

1) --pythonpath PYTHONPATH : 프로젝트 위치를 지정함.
django-admin migrate --pythonpath='/home/djangoprojects/myproject'



2) --settings SETTINGS : 장고 프로젝트 폴더를 기준으로 세팅 파일 위치를 지정함.

django-admin migrate --settings=mysite.settings

3) --traceback : CommandError가 발생하면 전체 스택을 추적하여 표시합니다. 기본적으로 django-admin은 간단한 오류 메시지를 표시해 주기 때문에 자세한 메시지를 확인하기 위해 사용하는 듯 합니다.

Options:

    - 0 출력이 없음을 의미함.

    - 1 정상 출력을 의미함(기본 값).

    - 2 자세한 출력을 의미함.

    - 3 매우 자세한 출력을 의미함.


4) --no-color : 색상이 지정된 명령 출력을 비활성화 함. 오류는 빨간색, SQL문은 구문 강조 표시인데 이를 비활성화 하는것.

ex) django-admin runserver --no-color

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/05   »
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
글 보관함