본문 바로가기

💻 개발블로그/django19

.DS_store 파일제거 윈도우를 사용하다 맥OS로 갈아타면서 깃에 처음보는 파일이 생성되었다. 맥OS에서 자동 생성되는 파일이고 프로젝트에 영향을 미치는 파일이 아니므로 제거하고 gitignore에 업뎃시키면된다. find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch .DS_Store 파일을 찾아서 제거한다. echo .DS_Store >> .gitignore gitignore에 해당 파일을 추가해서 git에 올라가지 않도록 한다. 깃허브에 업데이트한다면 해당파일이 추가된 gitignore파일을 push한다. 2022. 5. 11.
Django 포트 사용 에러 :: 맥북사용 python manage.py runserver 입력시 포트 에러메세지 발생 Error: That port is already in use. 서버를 정상 종료하지 않으면 발생 할 수 있다. 장고 서버 정상적인 종료시엔 control + c 사용 lsof -i:8000 포트 8000에서 사용중인 서비스 내역을 확인 할 수 있다. kill -9 "PID" 해당 서비스의 PID를 입력하여 서버를 종료시킨다. 마지막으로 lsof -i:8000 명령어로 서버가 종료되었는지 확인하고 정상적으로 종료되었다면 다시 runserver를 하면 정상적으로 포트8000이 실행된다. 2022. 5. 10.
Django심화강의:2주차(05)(20220216) 🤓 Auto_now / Timezone 설정 📁 Auto_now, Auto_now_add ( Ctrl과 코드를 누르면 해당 코드 내부로 들어간다. ) - Auto_now : save할 때마다 생성시점을 기록한다. - Auto_now_add : created 할 때마다 생성시간을 기록한다. 데이터베이스탭에서 직접 수정하거나 rawsql 사용할 때 auto_now가 작동하지 않는다! ⏰ Timezone - 데이터베이스에 들어가는 시간 확인하기 (파이참 하단의 python cosole을 클릭해서 연다.) - 콘솔에 유저네임을 테스트로 저장할 때 auto_now가 실행되는지 테스트해본다. from tabom.models.user import User user = User(name='test') #유저네임은 't.. 2022. 2. 17.
Django심화강의:2주차(04)(20220216) 👍 좋아요 모델 구현하기 / 모델클래스 만들기 좋아요 모델에서 필요한 기능 분석 필요 - 좋아요는 게시글에 유저당 한 개만 누를 수 있다. - 좋아요 카운팅 - 좋아요를 눌렀을 때 버튼 변화 더보기 - 게시글(그것이 댓글이든, 유튜브 영상이든, 블라인드 포스트이든)에 “좋아요”를 누를 수 있다. (이떄 좋아요 개수가 증가한다.) - 한 사용자는 하나의 게시글에 단 하나의 좋아요만 할 수 있다! - 이미 좋아요 했는지 여부를 표시해 주어야 한다. - 이미 좋아요를 했다면, 좋아요 버튼을 다시 누름으로써 좋아요를 취소할 수 있다. (이때 좋아요 개수가 감소한다.) - 게시글의 리스트(최신 게시글이 맨 위로 오도록)를 보여준다. 이 때 좋아요 받은 개수도 같이 보여준다. >>> 좋아요 모델 구현하기 ⭐ 좋아요.. 2022. 2. 16.
Django심화강의:2주차(03)(20220215) 😎 환경별로 다른 설정값 사용하기 환경별로 다른 설정값을 사용하는 이유? 로컬과 실제 프로덕션 비밀번호가 같아버리면 해킹우려가 생길 수 있어 따로 관리한다. 환경별 다른 설정값을 주는 방법은 다양하고 정해진 답이 없다. 강의에서는 settings과 local_settings사용. 🔎 git ignore하기 .gitignore에 한 줄 추가하기 - DjangoPro/local_settings.py 🔎 local_settings.py 생성하기 - 위에서 gitignore에 추가했던 경로에 맞춰 Django폴더안에 local_settings.py 파일을 생성한다. - local_settings.py 안에 코드 붙여넣기 더보기 더보기 # For Production # SECRET_KEY = "django-ins.. 2022. 2. 16.
Django심화강의:2주차(02)(20220215) 😎 Github-action에서 데이터베이스 연결하기 📖 yml 파일 수정 - env: 환경변수 - mysql -e: escaping 문자열 전달 (명령어 바로 실행) github-action에서도 실행가능하고 interactive shell을 사용할 수 없기 때문에 사용함. 더보기 name: Django CI on: push: jobs: ci: env: DB_DATABASE: sparta DB_USER: root DB_PASSWORD: 12345 runs-on: ubuntu-latest steps: - name: Check out the codes uses: actions/checkout@v2 - name: Set timezone to KST run: | sudo rm /etc/localtime sud.. 2022. 2. 15.
Django심화강의:2주차(01)(20220214) 😎 Github-action에서 디버깅 📖 마이그레이션 python manage.py migrate 파이썬에서 데이터베이스가 변경이 되면 마이그레이션을 해줘야 한다. 마이그레이션 후 데이터베이스를 새로고침하면 해당 db에 테이블이 생성됨을 확인할 수 있다. 마이그레이션의 필요성? 소스코드를 git에서 관리하듯이 데이터베이스를 관리는 마이그레이션으로! 마이그레이션은 변경이력을 저장하므로 유용하다! 🔎 ssh 키 생성하기 # ssh 키 생성하기 (windows는 git bash로 ssh연결한다.) ssh-keygen -t rsa - 입력창은 Enter로 패스! - git bash에 있던 경로에서 id_rsa.pub 메모장으로 열어서 내용 복사하기. # github에서 ssh키 추가하기 - github -> .. 2022. 2. 14.
Django심화강의:1주차(10)(20220213) 😎 Mysql설치하기 (windows사용) mac과 windows에서의 설치 방법이 다르다고 한다. # docker desktop 설치하기 https://docs.docker.com/desktop/windows/release-notes/https://hub.docker.com/editions/community/docker-ce-desktop-windows (설치하는데 조금 시간이 걸리고, 컴퓨터를 다시 재부팅해야 하는 상황이 발생했다.) Docker Desktop for Windows by Docker | Docker Hub We and third parties use cookies or similar technologies ("Cookies") as described below to collect an.. 2022. 2. 14.
Django심화강의:1주차(9)(20220213) 😎 파이참에서 django실행 # 파이참에서 django실행하기 - 실행/디버그 구성편집 -> 새 구성 추가 / django server -> 저장 -urls.py에서 중단점표시, 디버깅 확인하기 - runserver후, 로컬호스트/api/docs로 접속 후 값을 입력한 뒤 값이 잘 넘어오는지 파이참에서 확인 2022. 2. 13.
Django심화강의:1주차(8)(20220211) 😎 iGithub Action 으로 push 할 때 마다 테스트하기 CI (Continuous Integration) # Github연결하기 github 레포지토리에 내 프로젝트를 연결한다. (git명령어 사용해서 연결, git명령어 참고) # 프로젝트 폴더에 디렉토리 추가 - 프로젝트폴더안에 .github 디렉토리 생성 - .github폴더안에 workflows 디렉토리 생성 - workflows폴더안에 ci.yml 또는 ci.yaml 파일 생성 - ci.yml 안에 코드 붙여넣기 (강의에서는 정렬이 제대로 되어있지 않았다.😢) 더보기 name: Django CI on: #action실행이 언제 되는지 정의(push할 때마다) push: jobs: #workflows는 여러개의 job으로 구성/이번 프.. 2022. 2. 12.
Django심화강의:1주차(7)(20220211) 😎 Black, isort, mypy, test까지 한 번에 실행하기 (윈도우) 명령어를 따로 따로 입력하면 번거로우므로 하나의 스크립트로 묶어 실행할 수 있다. 강의에서 실습 코드가 mac과 window에서 다르다. # test.sh 파일만들기 프로젝트 파일을 선택하고 test.sh폴더를 만들어 준다 그 안에 코드를 복사+붙여넣기 해 준다. (여기서 맥과 윈도우는 코드가 다르다.) 더보기 더보기 #!/usr/bin/env bash # 쉬뱅:리눅스를 위한 장치 어떤 파일을 사용해서 열게 될 지 # 스크립트의 명령을 실행하다가 중간에 실패하는 경우, 스크립트 중단 # pipefail은 mac에서는 쓰이지만 윈도우에서는 사용X (아래 3줄은 mac에서만 사용) # 윈도우는 스크립트가 실패/성공 후엔 터미널이.. 2022. 2. 11.
Django심화강의:1주차(6)(20220211) 😎 isort설치하기 isort: import순서를 정리해준다. # isort 설치하기 poetry add isort==5.10.1 터미널에 입력하기 # isort 실행 전 설정하기 isort에 "black"을 사용하고 있음을 알린다. 서로 함께 사용할 수 있도록 pyproject.toml에 추가해준다. git status를 입력하면 isort를 설치했기때문에 poetry.lock이 있고 설정파일도 변경됐기때문에 pyproject.toml이 있다. # isort 실행하기 poetry run isort . isort가 실행하면 수정된 파일목록이 출력된다. urls.py에 들어가면 import부분에 한줄이 늘어났음을 확인할 수 있다.(좌측에 초록색으로 변경사항이 보인다.) isort설치완료 2022. 2. 11.
Django심화강의:1주차(5)(20220211) 😎 테스트 만들고 실행하기 # 파이썬 패키지와 파일 만들기 -'tests'파이썬패키지 생성 -test_view.py 파일생성 (코드 붙여넣기할 때 tab확인, class안에 함수..) 더보기 더보기 class TestView(TestCase): def test_add_view(self) -> None: result = self.client.get("/api/add", {"a":1, "b":3}) self.assertEqual(result.status_code, 200) self.assertEqual(result.json(), {"result":4}) -python manage.py test를 입력하여 터미널에서 볼 수 있다. # Django 설정 터미널로 테스트를 실행하면 디버깅이 안되고 파이참 자체로 .. 2022. 2. 11.
Django심화강의:1주차(4)(20220211) 😎 Django-Stub, Mypy 설치(윈도우사용) # django-stub, mypy 설치하기 poetry add django-stubs==1.9.0 mypy==0.931 터미널입력 -django-stubs는 장고과 mypy를 함께 사용할 수 있도록 한다. -mypy # overrides알아보기 [[tool.mypy.overrides]] #overrides섹션 module ="packagename" #모듈에 패스를 적어준다. . . . #설정내용 적어주기 overrides는 모듈별로 mypy를 따로따로 설치할 수 있다. 업데이트 안내가 뜨면 (outdated), 업데이트에 해당하는 것에 버전을 써주고 poetry add한다. poetry add mypy==0.931 # pyproject.toml 내용.. 2022. 2. 11.
Django심화강의:1주차(3)(20220211) 😎BLACK설치하기(윈도우사용) code formatter: 협업시 팀원끼리 일관된 코드스타일을 유지할 수 있도록 도와준다. Black만의 코드 자동수정 기능이 있다. # Black 설치하기 poetry add black==21.12b0 터미널에 바로 명령어를 붙여넣으면 실행된다. # Black 실행하기 poetry run black . 터미널에 명령어를 붙여넣고 실행하면 Black코드스타일로 코드가 변경된다. - 긴 문자열의 경우에는 print('---')을 print( '---' ) 방식으로 변경해준다. - '싱글쿼터의 경우 "더블쿼터로 변경한다. # Black 설정하기 [tool.black] #섹션 line-length = 120 2022. 2. 11.
Django심화강의:1주차(2)(20220210) 😎 Django-ninja로 첫 API 만들어보기 장고심화강의 1주차에서 만든 장고 프로젝트에서 이어서 진행한다. # django urls.py 작성하기 📍 url.py 수정 후 에러발생, ninja모듈이 없다고 해서 pip install ninja로 모듈을 설치했다. 하지만 다음 에러에서는 업그레이드관련 문구가 출력되어 python -m pip install --upgrade pip 실행 마지막으로 NinjaAPI에 관련해 ninja를 찾지 못하는 것 같아서 python install django-ninja로 장고닌자를 설치해주니 해결이 되었다. # SWAGGER 사용하기 (Open API) http://127.0.0.1:8000/api/docs 접속 장고닌자를 사용하면 자동으로 swagger ui를 .. 2022. 2. 11.
Django심화강의:1주차(1)(20220210) 😎Poetry설치하기(윈도우사용) ( 윈도우 파워쉘(powershell)을 통해 명령어를 입력한다. ) # 파이썬버전 확인하기 python --version 명령어를 입력하면 파이썬 버전이 출력된다. # 파이썬버전 지정하기 py -%version% (파이썬 3.9버전 예시: py -3.9) 파이썬 버전을 여러개 설치했을 경우, 버전을 지정해줄때 사용한다. # Poetry 설치하기 (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python - 윈도우의 경우, 명령어를 Powershell에 입력하여 poetry를 설치한다. # .. 2022. 2. 10.
Django강의:2주차(20220120-21) 😎장고(django)프로젝트를 위한 초기 세팅방법! ( 차근차근 따라해보자!😭 ) # 생성한 APP파일 장고에 알리기 startapp으로 생성한 앱파일을 장고에 알린다. settings.py에서 INSTALLED_APPS에 앱을 추가한다. ( tweet, user ) 나머지 앱은 장고에서 자동생성된 것. # settings.py에서 데이터베이스 연결 - settings.py는 장고의 모든 세팅을 담당한다. (앱, 데이터베이스 등등) - settings.py의 데이터베이스 부분을 확인하면 SQLite3를 사용하는데 잘 연결되어있다면 탐색기에 db파일을 확인 할 수 있다. # ORL(Object Relational Mapping) - 2022. 1. 21.