[Django] 마이그레이션 파일에 초기 데이터 넣기
·
Django,Python
Django에서 마이그레이션 파일을 만들때  --empty 옵션으로 빈 마이그레이션 파일을 생성할 수 있다.공식문서: https://docs.djangoproject.com/en/5.0/topics/migrations/#data-migrationspython manage.py makemigrations --empty 생성된 마이그레이션 파일에 초기 데이터를 넣는 로직을 작성하면 된다.추가로, 마이그레이션을 되돌릴때 로직도 넣을 수 있다. 필수는 아니지만 작성하지 않으면 마이그레이션을 되돌릴때 에러가 발생한다. 그러므로 빠른 개발을 위해 넣어주는 것이 좋다.# Generated by Django 5.0.6 on 2024-07-23 06:47from django.db import migrationsfrom ..
[Django] Django에서는 HTTP 요청을 어떻게 처리할까?
·
Django,Python
Django의 Request-Response CycleDjango에서는 HTTP 메시지로 요청이 들어오면 미들웨어를 거쳐 HttpRequest 객체를 만든다.settings.py에 있는 ROOT_URLCONF에서 urlpatterns를 순서대로 찾는다.ROOT_URLCONF = ".urls"request의 url과 일치하는 패턴이 있다면 찾기를 종료하고 (클래스 기반 뷰의 경우) as_view 함수를 실행한다. (request 인자를 넘겨준다.)# ~/login으로 찾는다면urlpatterns = [ path("register/", member_auth_views.MemberRegisterView.as_view()), path("login/", member_auth_views.MemberLoginVi..
[Django] factory_boy
·
Django,Python
로컬에서 개발하다보면 더미 데이터들이 필요할 때가 있다. 간단하게 스크립트를 만들어서 이렇게 구현해줄 수 있는데, from post.models import Post def create_dummy_posts(): for i in range(100): Post.objects.create( title=f'title-{i}', content=f'content-{i}' ) 이 데이터들은 우리가 직접 값을 지정해줘야하고, 여러가지 케이스가 필요한 경우에는 대응하기 힘들다. 그래서 더미데이터들을 만들때 faker라는 라이브러리를 많이 사용하는데, factory_boy라는 모듈이 faker도 지원해주고, 장고 모델도 지원해줘서 소개해보고자 한다. factory_boy — Factory Boy stable docume..
[Python] Pickle
·
Django,Python
Python pickle Python 에서 pickling 한다는 것은 파이썬 빌트인 객체인 list, tuple 등을 binary 데이터로 만든다는 것이다. Pickling 한 객체를 다시 파이썬 객체로 역직렬화하면 파이썬에서 바로 쓸 수 있는 객체가 된다. import pickle if __name__ == '__main__': with open('test.bin', 'wb') as fw: pickle.dump({'test': 'test', 'list': [(1, 2), {3, 5, 6}]}, fw, protocol=5) with open('test.bin', 'rb') as fr: result = pickle.load(fr) print(result) print(result['test']) print..
[Django] on_delete=CASCADE
·
Django,Python
장고에서 모델을 만들때, on_delete=models.CASCADE라고 설정하면 외래 키의 주인 테이블이 drop 되거나, 행이 삭제되거나 했을때 자동으로 삭제되는걸로 생각한다. 아래의 예제를 보면 Product가 삭제되면 그 Product를 참조하고 있는 ProductItem도 같이 삭제될것이다. class Product(models.Model): title = models.CharField(max_length=40) repr_price = models.IntegerField() status = models.CharField(max_length=20) def __str__(self): return f'{self.title}({self.repr_price})' class ProductItem(model..
[Python] 파이썬의 typing
·
Django,Python
이전까진 타입 스크립트, 코틀린등을 쓰다가 파이썬으로 넘어올때 가장 불편했던건 타입이 없던것이었다. 처음 간단하게 스크립트를 작성할때는 편할 수 있지만 결국 혼자 작업하는게 아닌 이상 타입이 있는게 무조건 편하고 속도도 빠르다. 다행히 파이썬 3.5부터 타입 힌팅을 제공하는데 개발하면서 유용하게 쓸 수 있도록 정리해보았다. 타입의 등장 What’s New In Python 3.5 — Python 3.5.9 documentation configparser configparser now provides a way to customize the conversion of values by specifying a dictionary of converters in the ConfigParser constructor..
MAMP로 Python CGI 테스트 해보기
·
Django,Python
간단하게 맥에서 Python CGI를 테스트해보았다. 1. MAMP를 다운받는다.(Bitnami를 다운받으려 했는데 지원을 중단했다고 한다 🥲) https://www.mamp.info/en/windows/ MAMP & MAMP PRO - your local web development solution for PHP and WordPress development MAMP GmbH is the manufacturer of the award-winning MAMP software. www.mamp.info 2. 기본 버전을 실행해준다.(PRO 버전도 상관없음) 그럼 localhost:8888에 웹서버가 뜬걸 확인할 수 있다. 3. 설정파일을 확인한다.(나의 경우는 /Application/MAMP/conf/ap..
togeepizza
'python' 태그의 글 목록