코딩일지/TIL: Today I Learned

20221014 TIL

야언 2022. 10. 14. 18:22

오늘의 한 일

  • TIL, WIL 잘 쓰는 법 특강
  • pandas, numpy 둘러보기
  • 장고 타임어택 테스트

 

 

pandas, numpy 둘러보기

 

 

앞으로 프로젝트에 쓰일 예정인 YOLOv5에 대해 조금 더 알아보는 시간을 가졌다.

 

result = results.pandas().xyxy[0].to_numpy()

특강과 테스트에서 당연하단듯이 쓰긴 했지만

pandas를 사용한 넘파이 배열 변환이라고 하는데, pandas도 처음 써보고 numpy 배열도 처음 본것 아닌가? 그냥 array랑은 어떻게 다른거지? 싶어 구글링으로 공부해보는 시간을 가졌다..

 

참조)

 

https://foss4g.tistory.com/1646

 

PyTorch: YOLOv5 모델을 이용한 이미지 객체 탐지

안녕하세요? 이번 글은 PyTorch에서 YOLOv5 모델을 이용한 이미지 객체 탐지 과정을 정리해 보겠습니다. *실습 내용은 아래 글에 포함되어 있는 소스 코드를 그대로 사용했습니다. PyTorch An open source m

foss4g.tistory.com

 

 

https://datascienceschool.net/01%20python/03.01%20%EB%84%98%ED%8C%8C%EC%9D%B4%20%EB%B0%B0%EC%97%B4.html

 

3.1 넘파이 배열 — 데이터 사이언스 스쿨

.ipynb .pdf to have style consistency -->

datascienceschool.net

 

https://pandas.pydata.org/docs/user_guide/10min.html#min

 

10 minutes to pandas — pandas 1.5.0 documentation

10 minutes to pandas This is a short introduction to pandas, geared mainly for new users. You can see more complex recipes in the Cookbook. Customarily, we import as follows: In [1]: import numpy as np In [2]: import pandas as pd Object creation See the In

pandas.pydata.org

 

어떻게 돌아가는지는 알아둬야 할 것 같아서 찾아봤는데 단기간에 이해하긴 너무 어려웠던것 같다.. 일단 써보면서 차차 알아가야할듯

 

 

 

 

 

장고 타임어택 테스트

 

파이참 없이 vscode, git bash 만을 사용하여 작업했다.

 

1. 프로젝트 폴더 생성 및 가상환경 생성, 실행

mkdir 폴더이름
cd 폴더이름
python -m venv venv(가상환경 폴더 이름)
source venv/scripts/activate

 

2. django 패키지 설치, requirements.txt 생성

pip install django
pip freeze > requirements.txt

3. sparta 프로젝트 생성

django-admin startproject sparta .

** 프로젝트 이름 뒤에 공백+'.' 넣어야 현재 경로에 설치된다 안그러면 폴더 하나 더 안으로 들어감

 

4 깃허브 리포지터리 생성 + 연결은 소스트리를 사용

 

5 .gitignore 파일은 gitignore.io 웹페이지에서 django 검색 후 생성된 파일에 .idea파일 주석 제거 후 사용

6 깃허브에서 브랜치 생성

 

7

python manage.py startapp user

8 ~ 13 작업 결과물 github push - pull request - merge 

 

주의해야 했던 점

 

INSTALLED_APPS에 user 추가하기

 

장고에서 제공하는 user 모델을 상속받기위해 models.py에 AbstractUser를 import 후 클래스에 지정, 핸드폰번호와 주소를 추가로 넣어준다

user - models.py

from django.contrib.auth.models import AbstractUser

class UserModel(AbstractUser):

    phone = models.CharField(max_length = 16, default='')
    address = models.CharField(max_length=256, default='')

+

settings.py에

AUTH_USER_MODEL = 'user.UserModel'

를 추가해 주어야 한다.

 

 

템플릿 디렉토리 수정

TEMPLATES = [
    {
        "BACKEND": "django.template.backends.django.DjangoTemplates",
        "DIRS": [BASE_DIR / 'templates'],  # 이부분!
        "APP_DIRS": True,
        "OPTIONS": {
            "context_processors": [
                "django.template.context_processors.debug",
                "django.template.context_processors.request",
                "django.contrib.auth.context_processors.auth",
                "django.contrib.messages.context_processors.messages",
            ],
        },
    },
]

타임어택 테스트 후에 강의를 보니까 templates 폴더 안에 html들을 모두 넣어두면 지정하지 않고도 제대로 작동하던데

나같은 경우엔 user 폴더를 따로 지정해서 그런지 에러가 떠서 DIRS를 지정해주는것으로 해결

 

덤으로 핸드폰 번호를 정규식으로 판단하는 함수도 집어넣었었는데 로그인 페이지가 제대로 작동되지 않아서 뭐가 문제인가 하나씩 빼보면서 확인하다가 잃어먹었다.. 

 

결국 뭐가 문제인가 했더니 첨부된 login.html 안의 아이디 패스워드 input에 id name이 누락되어있던 것이였다 ㅋㅋ;

 

 

+

 

git bash로 가상환경상에서 테스트를 진행했는데, 슈퍼유저를 생성하는 명령어

python manage.py createsuperuser

를 입력했더니

 

Superuser creation skipped due to not running in a TTY.
You can run `manage.py createsuperuser` in your project to create one manually.

이런 오류가 나온다.

슈퍼유저 생성을 TTY 환경에서 만들 수 없다고? 이건 또 무슨 말이지?

구글링을 통해 TTY가 TeleTYpewriter, 가상 콘솔 환경이란 것을 알았고,

Windows 콘솔과 통신이 가능한 인터페이스를 제공하는 Windows 소프트웨어 패키지 winpty를 앞에 붙여 실행시키는 방법으로 해결

 

$ winpty python manage.py createsuperuser

 

 

참조)

 

https://thinkground.studio/django-windows-git-bash-createsuperuser-%EC%83%9D%EC%84%B1-%EB%B6%88%EA%B0%80/

 

[django] windows git bash createsuperuser 생성 불가 - ThinkGround

[django] windows git bash createsuperuser 생성 불가 관련 포스트입니다. 윈도우상에서 가상으로 만들어낸 bash이다 보니 이런 문제가 있는 것 같습니다. winpty를 앞에 붙여서 명령을 실행하면 된다고 합니

thinkground.studio

 

 

 

완성된 프로젝트는 github에 제출완료~

 

https://github.com/didjsrne/django-test

 

GitHub - didjsrne/django-test

Contribute to didjsrne/django-test development by creating an account on GitHub.

github.com

 

 

 

 

P.S.

 

venv환경인데 왜 파이썬경로가..? 애초에 왜 아나콘다쪽이지?

아나콘다랑 vscode를 연동하면서 파이썬 기본경로 설정이 뭔가 꼬인거같다.. 아나콘다 설치과정중에 PATH지정으로 일어난 일인것 같은데 골치아프네..