일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- iterm2 단축키
- linux
- Django
- customize
- DynamoDB
- nosql
- AWS
- 빅오노테이션
- 파이썬
- python
- BIG-O NOTATION
- test
- 도커컴포즈
- terraform
- docker-compose
- server
- 도커
- 테라폼 기본 문법
- zshrc
- zsh
- Shell
- Bash
- docker
- terraform 문법
- 테라폼 문법
- 컨테이너
- minikube mac 설치
- minikube 설치 방법
- iterm2 shortcuts
- sftp란
- Today
- Total
목록django (9)
sklass의 s-class 프로그래밍 blog
python manage.py runserver 0.0.0.0:8000 명령어로 서버를 실행시킨다. ctrl + z 를 눌러 해당 프로그램을 정지시키고 shell로 돌아온다. bg 명령어를 쳐서 백그라운드에서 보낸다. disown -h 명령어를 통해 ssh 연결이 끊어져도 해당 프로세스가 돌아가도록 한다. 터미널 창을 종료한다. 참고 만약 ssh 쉘에 재접속하여 종료 후 실행을 진행하고 싶다면 $ sudo lsof -t -i tcp:8000 | xargs kill -9 위 명령어를 통해 사용중인 포트를 반환하고 코드를 수정하거나 git pull을 진행후 다시 1번 작업부터 진행한다. ps -l 명령어를 통해 실행중인 프로세스를 확인할 수 있다.
아래와 같은 테이블 스키마가 있다고 가정해봅시다. class Shop(models.Model): shop_name = models.CharField(max_length=20) shop_address = models.CharField(max_length=40) class Order(models.Model): shop = models.ForeignKey(Shop, on_delete=models.CASCADE) order_date = models.DateTimeField("date ordered") address = models.CharField(max_length=40) estimated_time = models.IntegerField(default=-1) deliver_finish = models.Bool..

아래의 사진은 Menu라는 테이블의 데이터들입니다. shop_id는 Shop이라는 테이블과 연결해주는 Foreign Key 역할을 하는 column입니다. 이런 경우, 만약 shop_id == 1인걸 모두 가져오고 싶다면 어떻게 해야할까요? 아래는 get()을 사용하였을 경우입니다. menu = Menu.objects.get(shop=shop) 위와 같이 에러가나는 이유는 get()의 경우, unique한 데이터를 가져올 때만 사용해야합니다. 즉, 가져오려는 데이터가 2개 이상인 경우, 위와 같은 에러를 리턴합니다. 그렇다면, 2개 이상의 데이터를 가져오고 싶을때는 어떤 함수를 써야할까요? 바로 filter()를 사용하면 됩니다. menu = Menu.objects.filter(shop=shop)

보통 프론트에서 json형태로 오는 요청들은 모두 string으로 변환되어서 옵니다. 하지만 django drf를 사용하면, json으로 오는 요청들을 굳이 json.loads()를 이용해서 dict형태로 바꾸어주지 않아도, drf의 request.data.get()을 사용하면 알아서 바꿔주게 됩니다. 하지만 만약에 요청이 json형식이 아닌, form data형식으로 온다면, request.data.get()을 이용하더라도 자동으로 dict형태로 변환되지 않고, string으로 오기때문에 request.data.get() 후에 json.loads()로 dict 형태로 data를 변경해주어야한다. 만약 아래와 같이 project_id라는 키값으로 1을 보내면, drf의 request.data.get()을..
django test를 할때 명령어에서 특정 테스트만 테스트하게끔 하고 싶을때 @tag를 사용하면 수월합니다. 아래와 같이 테스트 함수 위에 @tag를 달아주세요. @tag("greeting") def test_hello(self) -> None: print("hello") @tag("introduce") def test_name(self) -> None: print("Joseph") @tag("greeting", "welcome") def test_welcome(self) -> None: print("welcome") 이렇게 하고 아래 명령어를 실행하면 됩니다. python3 manage.py test --tag="greeting" >> hello >> welcome python3 manage.py t..
django에서 test명령어를 실행할때, argument, 즉 option을 추가해서 명령어를 실행하고 싶을때가 있습니다. 이런경우, DiscoverRunner라는 Django Test의 최상위 클래스의 add_arguments()라는 classmethod를 override하면 됩니다. 아래에 예시를 참고하세요. tests/runner.py 에 아래 코드를 추가해줍니다. from django.conf import settings from django.test.runner import DiscoverRunner class TestRunner(DiscoverRunner): def __init__(self, mol_id, conformer_id, **kwargs): super().__init__(**kwar..