ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Django 1일차
    Django/OZ 2024. 3. 6. 11:47

     

    Python Poetry

    파이썬의 패키지 관리를 용이하게 도와주는 툴

    가상환경을 만들기 위한 툴

    poetry add == pip install

     

    (사용)

    poetry build
    poetry publish

     

     

    brew를 설치하면 편리하게 라이브러리 설치 가능

    ## (1) brew 설치 (brew 설치가 안되어 있는 경우)
    ## brew 공식사이트: https://brew.sh/index_ko 
    > /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
    
    ## brew --version 으로 설치 확인 후 진행했다
    
    ## (2) poetry 설치
    > brew install poetry
    > poetry --version

     

    가상환경 설치

    프로젝트별로 버전을 관리할 수 있다는 장점

    예를 들어, 전역으로 장고를 설치해서 프로젝트를 진행 중이었는데 장고가 업데이트 되면

    기존의 프레임워크에서 의존성 문제가 발생할 수 있다.

    가상환경을 만들어 의존성을 묶어놓는 락킹 기능.

     

     

    1) 프로젝트 파일(pyproject.toml) 생성

    작업할 디렉토리에서 poetry init

    패키지명(프로젝트이름)을 정하라고 하는데 입력을 하지 않고 기존 폴더명으로 자동 생성했다.

     

    oz-Django 디렉토리에 pyproject.toml 이 생성되었다

     

     

    2) 가상환경에 장고 설치

    poetry add django 로 가상환경에 장고를 설치한다.

    .venv 폴더와 .poetry.lock 파일이 생겨야 하는데 .venv 는 생기지 않았다.

    poetry add django, poetry install 하면 잘 생긴다 _240403

    그러고 poetry shell하면 venve도 자동으로 생긴다 _240510

    venv는 가상환경을 나타내는 폴더.

     

    (해결방법) .venv 디렉토리가 생성되지 않는 경우

     => pyproject.toml 을 제외하고 모든 poetry 파일을 삭제했다.

    poetry config virtualenvs.in-project true
    poetry config virtualenvs.path "./.venv"

     

    터미널에 위 코드를 실행하니 .venv 디렉토리는 생성되었는데 .poetry.lock 파일이 생기지 않았다.

    poetry add django
    poetry install
    poetry add

     

    저장 후 새로고침을 하니 .poetry.lock 파일이 생겼다. 먼저 디렉토리 재로드를 했으면 진작 생겼을지도 모르겠다.

     

     

    poetry.lock 파일은 프로젝트의 의존성 트리에 대한 정확한 스냅샷을 제공한다.

    이 파일은 poetry add 명령을 사용하여 의존성을 추가할 때마다 생성되거나 업데이트된다.

    소스 코드 저장소에 포함시켜 다른 개발자나 배포 환경에서도 동일한 의존성을 사용하게 할 수 있다.

    직접 편집하지 않고 명령어를 통해 간접적으로 관리된다.

     

    poetry add django -> 장고가 프로젝트 의존성으로 추가됨 ->

    pyproject.toml 파일에 해당 내용이 기록, 동시에 poetry.lock 파일 업데이트 

     

    (정리)

    pyproject.toml 파일은 프로젝트의 구조와 의존성을 정의하고

    poetry.lock 파일은 의존성의 구체적인 버전을 고정하여 프로젝트의 일관성을 유지한다.(locking)

     

     

     

    3) 가상환경에서 장고 실행

    poetry shell 로 가상환경 접속

    가상환경을 뜻하는 구성 경로 (oz-django-py3.12) 를 확인할 수 있다.

    가상환경에서 나갈 때는 exit 입력

    .venv 생성 오류 해결 전 경로

     

    .venv 생성 오류를 해결한 뒤 경로에 .venv가 들어가있다.

     

     

    3) 프로젝트 생성

    django-admin으로 사용가능한 명령어를 확인할 수 있다.

     

    startproject를 사용해 프로젝트를 생성한다

    django-admin startproject config .

     

    config라는 폴더가 생긴다.

    장고를 구성하는 기본적인 파일이 담긴 폴더이다. (. 은 현재 경로를 의미)

     

     

     

    4) 서버실행

    python manage.py runserver

     

    /admin

     

     

     

    django-admin 과 python manage.py 차이

    django-admin runserver 
    settings.py에 접근할 수 없다.
    장고 개발서버를 실행시키지만 현재 진행중인 프로젝트의 설정이 로드되진 않는다.

    python manage.py runserver
    개발서버가 시작되며 settings.py에 정의된 프로젝트 설정이 모두 적용된다.

     

     

    requirments.txt를 만드는 명령어

    pip freeze > requirements.txt

     

     

    기존의 requirments.txt 파일을 pyproject.toml로 이전하는 명령어

    cat requirements.txt | xargs -I % sh -c 'poetry add "%"'

     


     

    어드민 패널 접속

    poetry shell
    python manage.py createsuperuser

    email은 건너뛰었다. 비밀번호가 짧지만 그냥 만들었다.

     

     

    /admin에 접속하여 생성한 관리자 계정으로 로그인했다

    user에 생성한 계정이 보인다. 비밀번호는 해쉬로 관리되고있다.

     

     

     


    Django의 강력한 admin 페이지

     장고(Django)에서 "강력한" admin 페이지란, 장고 프레임워크가 기본적으로 제공하는 관리자 인터페이스를 의미한다.

    이는 데이터베이스의 모델을 관리하고 조작하는데 사용되는 웹 기반 인터페이스로, 개발자들이 데이터를 쉽게 관리하고 조작할 수 있도록 도와준다.

     

    장고의 admin 페이지는 다음과 같은 특징으로 강력하다고 평가된다.

    1. 사용자 인터페이스(UI) 제공: 개발자들은 데이터베이스 모델을 정의하고 admin 페이지를 통해 이러한 모델에 액세스할 수 있다. 이를 통해 개발자는 데이터를 추가, 수정, 삭제할 수 있다.
    2. 관리 기능: admin 페이지는 다양한 관리 기능을 제공한다. 예를 들어, 필터링, 검색, 정렬 기능을 사용하여 데이터를 관리할 수 있다.
    3. 커스터마이징: admin 페이지는 커스터마이징이 가능하다. 개발자들은 admin 페이지의 모양과 동작을 수정하고 확장할 수 있다. 이를 통해 특정한 요구에 맞게 admin 페이지를 개선할 수 있다.
    4. 보안: admin 페이지는 사용자 및 권한 관리를 지원하여 특정 사용자가 특정 데이터에만 접근할 수 있도록 제한할 수 있다.

    이러한 기능들로 인해 장고의 admin 페이지는 개발자들이 웹 애플리케이션의 데이터를 관리하고 조작하는데 매우 유용하고 효과적인 도구로 평가된다.

    'Django > OZ' 카테고리의 다른 글

    Django 3일차 - Rest framework  (0) 2024.03.09
    ORM  (0) 2024.03.08
    Django 2일차 - Admin Panel  (0) 2024.03.07
    Django 2일차  (1) 2024.03.07
    URL, VIEW 개념  (0) 2024.03.06
Designed by Tistory.