django
-
๐ Crontab crontab์ Linux ์ด์์ฒด์ ์์ ์๊ฐ ๊ธฐ๋ฐ ์ก ์ค์ผ์ค๋ฌ์ด๋ค. ์ฆ, ์ํ๋ ์๊ฐ์ ์ํ๋ ์์ ์ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ ์์ ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด ์ฅ๊ณ ์์ ๋ก๊ทธ์ธ์ ํ์ ๋, session์ผ๋ก ๊ตฌํ๋ ๋ก๊ทธ์ธ์ด๋ผ๋ฉด django-session์ session์ ๋ณด๊ฐ ์ ์ฅ๋์๋ค๊ฐ ๋ก๊ทธ์์ํ๋ฉด ์ญ์ ๊ฐ ๋๋ค. ํ์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๊ฑฐ๋ ๋ง๋ฃ์๊ฐ์ด ์ง๋๊ฒ ๋๋ฉด session์ ๋ณด๋ ์ ์ง๋๋ฉฐ ๋ก๊ทธ์์ ์ฒ๋ฆฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ณ์๋๋ ๋ก๊ทธ์ธ ๋ง์์ง๋ฉด ๋ถํ์ํ session ๋ฐ์ดํฐ๊ฐ ์์ฌ ์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๋ค. ์ด๋ ํน์ ์๊ฐ์ด ๋๋ฉด ๋ง๋ฃ๊ฐ ๋ session์ ๋ณด๋ฅผ ์ญ์ ํด ์คฌ์ผ๋ฉด ์ข๊ฒ ๋ค. ์์ ๊ธฐ๋ฅ์ ๋์ ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก crontab!!์ด๋ค. ๐ฑ django-crontab ์ค์น ๋จผ์ ๋ค์..
[Django] django-crontab ์ค์ผ์ค๋ฌ ์์ฑ๐ Crontab crontab์ Linux ์ด์์ฒด์ ์์ ์๊ฐ ๊ธฐ๋ฐ ์ก ์ค์ผ์ค๋ฌ์ด๋ค. ์ฆ, ์ํ๋ ์๊ฐ์ ์ํ๋ ์์ ์ ์ํํ ์ ์๊ฒ ํด์ฃผ๋ ์์ ์ค์ผ์ค๋ฌ๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์๋ฅผ ๋ค์ด ์ฅ๊ณ ์์ ๋ก๊ทธ์ธ์ ํ์ ๋, session์ผ๋ก ๊ตฌํ๋ ๋ก๊ทธ์ธ์ด๋ผ๋ฉด django-session์ session์ ๋ณด๊ฐ ์ ์ฅ๋์๋ค๊ฐ ๋ก๊ทธ์์ํ๋ฉด ์ญ์ ๊ฐ ๋๋ค. ํ์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ๋ซํ๊ฑฐ๋ ๋ง๋ฃ์๊ฐ์ด ์ง๋๊ฒ ๋๋ฉด session์ ๋ณด๋ ์ ์ง๋๋ฉฐ ๋ก๊ทธ์์ ์ฒ๋ฆฌ๊ฐ ๋๊ธฐ ๋๋ฌธ์ ๊ณ์๋๋ ๋ก๊ทธ์ธ ๋ง์์ง๋ฉด ๋ถํ์ํ session ๋ฐ์ดํฐ๊ฐ ์์ฌ ์๋ฆฌ๋ฅผ ์ฐจ์งํ๊ฒ ๋๋ค. ์ด๋ ํน์ ์๊ฐ์ด ๋๋ฉด ๋ง๋ฃ๊ฐ ๋ session์ ๋ณด๋ฅผ ์ญ์ ํด ์คฌ์ผ๋ฉด ์ข๊ฒ ๋ค. ์์ ๊ธฐ๋ฅ์ ๋์ ํด์ฃผ๋ ๊ฒ์ด ๋ฐ๋ก crontab!!์ด๋ค. ๐ฑ django-crontab ์ค์น ๋จผ์ ๋ค์..
2023.05.22 -
โ๏ธ EC2์๋ฒ์์ ์ผ๋ฐ์ ์ธ Django๋ฅผ ์ด์ฉํ ์๋ฒ ๋ฐฐํฌ ์์ ๋ ๋์์ด ๋ง์ด ๋์๋ค. โ๏ธ ์์ฆ ์ถ์ธ๋ก DepOps์์ ์ด์ฉ๋๋ MSAํํ์ ์๋ฒ ๋ฐฐํฌ ๋ฐฉ์์ ๊ธฐ๋ณธ์ด ๋๋ Docker ๋ฐฐํฌ ๋ฐฉ์์ ์ตํ๊ธฐ ์ํด docker-compose๋ก ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด ๋ณด๋ ค๊ณ ํ๋ค. ๐ EC2 1. ๊นํ๋ธ repo ์๋ฒ๋ก ์ด๋ โค ํ๋ก์ ํธ ํด๋ ์์ฑ $ mkdir workspace โ๏ธ ํ๋ก์ ํธ ์์ ๋ฌผ์ด ๋ค์ด๊ฐ ํด๋๋ฅผ ์์ฑํ๋ค. โค Git repo ๋ฐ๊ธฐ $ git clone -b โ๏ธ ํ์ฌ main ๋ ํฌ์งํฐ๋ฆฌ๋ ์ต์ ์ํ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ develop ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ clone ๋ฐ๋๋ก ํ์. 2. ์๋ฒ์์ ์ฌ์ฉ๋ ํจํค์ง update ๋ฐ ์ค์น โค ์ฌ์ฉ ๊ฐ๋ฅํ ํจํค์ง ๋ฐ ๋ฒ์ ์ ๋ณด ์ ๋ฐ์ดํธ $ sudo apt update..
[Docker] docker-compose๋ฅผ ์ด์ฉํ ํ๋ก์ ํธ ๋ฐฐํฌโ๏ธ EC2์๋ฒ์์ ์ผ๋ฐ์ ์ธ Django๋ฅผ ์ด์ฉํ ์๋ฒ ๋ฐฐํฌ ์์ ๋ ๋์์ด ๋ง์ด ๋์๋ค. โ๏ธ ์์ฆ ์ถ์ธ๋ก DepOps์์ ์ด์ฉ๋๋ MSAํํ์ ์๋ฒ ๋ฐฐํฌ ๋ฐฉ์์ ๊ธฐ๋ณธ์ด ๋๋ Docker ๋ฐฐํฌ ๋ฐฉ์์ ์ตํ๊ธฐ ์ํด docker-compose๋ก ํ๋ก์ ํธ๋ฅผ ๋ฐฐํฌํด ๋ณด๋ ค๊ณ ํ๋ค. ๐ EC2 1. ๊นํ๋ธ repo ์๋ฒ๋ก ์ด๋ โค ํ๋ก์ ํธ ํด๋ ์์ฑ $ mkdir workspace โ๏ธ ํ๋ก์ ํธ ์์ ๋ฌผ์ด ๋ค์ด๊ฐ ํด๋๋ฅผ ์์ฑํ๋ค. โค Git repo ๋ฐ๊ธฐ $ git clone -b โ๏ธ ํ์ฌ main ๋ ํฌ์งํฐ๋ฆฌ๋ ์ต์ ์ํ๊ฐ ์๋๊ธฐ ๋๋ฌธ์ develop ๋ ํฌ์งํฐ๋ฆฌ๋ฅผ clone ๋ฐ๋๋ก ํ์. 2. ์๋ฒ์์ ์ฌ์ฉ๋ ํจํค์ง update ๋ฐ ์ค์น โค ์ฌ์ฉ ๊ฐ๋ฅํ ํจํค์ง ๋ฐ ๋ฒ์ ์ ๋ณด ์ ๋ฐ์ดํธ $ sudo apt update..
2023.05.08 -
[22.11.27] ๐ ๊ตฌํํ๊ณ ์ ํ๋ ํ๋ฉด 1. ์ด์ ๊ฐ๋ฐ ๋จ๊ณ์์ ์ฌ์ดํธ๋ฅผ ๋ฑ๋กํ์ฌ ํด๋น ์ฌ์ดํธ์ Tag๋ฅผ Many-to-Many๊ด๊ณ๋ก ๋ฑ๋กํ๋ ์งํ 2. ์ด์ ํ๊ทธ๊ฐ ๋ฑ๋ก๋ ์ฌ์ดํธ๋ฅผ ์ต์ ์์ผ๋ก 4~6๊ฐ ์กฐํ ํ ๋ฑ๋ก๋ ๋ชจ๋ ํ๊ทธ๋ฅผ ์กฐํํ์ฌ ํ๋จ์ Tag buttonํํ๋ก ๋์ ์ผ๋ก ๋ฟ๋ ค์ฃผ๋ ์์ ์ ์งํํ ๊ฒ์ด๋ค. 3. ์์ ๊ฐ์ด ์งํํ๊ธฐ ์ํด์ Siteํญ๋ชฉ์ ์กฐํํ ๋ฟ ์๋๋ผ Many-to-Many๊ด๊ณ๋ก ๋ฑ๋ก๋ ํ๊ทธ๋ ์กฐํ๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ Serializer ์์ ์ ์งํํ๊ฒ ๋์๋ค. ๋ฌผ๋ก api 2๊ฐ๋ฅผ ์์ฒญํ์ฌ ๊ฐ๊ฐ ์ฌ์ดํธ ๋ฐ์ดํฐ, ํ๊ทธ ๋ฐ์ดํฐ ์กฐํํ ์๋ ์์ง๋ง 2๋ฒ์ ์์ฒญํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋นํจ์จ์ ์ด๋ฉฐ drf์ ์กด์ฌํ๋ serialize๋ฅผ ํ์ฉํ์ง ๋ชปํ๋ค๊ณ ํ๋จ 1. views.py > TagsA..
[ISSUE] Tag ํฌํจ๋ Site ๋ชจ๋ธ์ serialize ์ฒ๋ฆฌ[22.11.27] ๐ ๊ตฌํํ๊ณ ์ ํ๋ ํ๋ฉด 1. ์ด์ ๊ฐ๋ฐ ๋จ๊ณ์์ ์ฌ์ดํธ๋ฅผ ๋ฑ๋กํ์ฌ ํด๋น ์ฌ์ดํธ์ Tag๋ฅผ Many-to-Many๊ด๊ณ๋ก ๋ฑ๋กํ๋ ์งํ 2. ์ด์ ํ๊ทธ๊ฐ ๋ฑ๋ก๋ ์ฌ์ดํธ๋ฅผ ์ต์ ์์ผ๋ก 4~6๊ฐ ์กฐํ ํ ๋ฑ๋ก๋ ๋ชจ๋ ํ๊ทธ๋ฅผ ์กฐํํ์ฌ ํ๋จ์ Tag buttonํํ๋ก ๋์ ์ผ๋ก ๋ฟ๋ ค์ฃผ๋ ์์ ์ ์งํํ ๊ฒ์ด๋ค. 3. ์์ ๊ฐ์ด ์งํํ๊ธฐ ์ํด์ Siteํญ๋ชฉ์ ์กฐํํ ๋ฟ ์๋๋ผ Many-to-Many๊ด๊ณ๋ก ๋ฑ๋ก๋ ํ๊ทธ๋ ์กฐํ๋ฅผ ํด์ผํ๊ธฐ ๋๋ฌธ์ Serializer ์์ ์ ์งํํ๊ฒ ๋์๋ค. ๋ฌผ๋ก api 2๊ฐ๋ฅผ ์์ฒญํ์ฌ ๊ฐ๊ฐ ์ฌ์ดํธ ๋ฐ์ดํฐ, ํ๊ทธ ๋ฐ์ดํฐ ์กฐํํ ์๋ ์์ง๋ง 2๋ฒ์ ์์ฒญํ๋ค๋ ๊ฒ ์์ฒด๊ฐ ๋นํจ์จ์ ์ด๋ฉฐ drf์ ์กด์ฌํ๋ serialize๋ฅผ ํ์ฉํ์ง ๋ชปํ๋ค๊ณ ํ๋จ 1. views.py > TagsA..
2023.05.06 -
[22.11.26] ๐ ManytoMany ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ ๋ชจ๋ธ Bulk Create ์์ โ๏ธ ํ์ฌ ์์ ๊ฐ์ด ๋ฑ๋ก๋ ํญ๋ชฉ์ ๋ํด ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ๊ตฌํ ์ค์ด๋ค. ๋ฑ๋ก๋ ํญ๋ชฉ์ Scrap Parsing์ ํตํด ํน์ ์ฌ์ดํธ์ ๊ด๋ จํ url, ์ธ๋ค์ผ, ์ ๋ชฉ ๋ฑ์ ์ ์ฅํ์ฌ ์ ๊ทผํ ์ ์๊ฒ ๊ตฌํํ ํํฉ ํ๋ฉด์ด๋ค. ํน์ ์ฌ์ดํธ๋ฅผ ์ ํํ์ฌ bulk(๋ค์ค)๋ก ํ๊ทธ๋ฅผ ๋ฑ๋กํ ์ ์๊ฒ ์คํฌ๋ฆฝํธ ๊ตฌํ ์ ํํ ๊ฐ Site์ Tag Model์ด ManytoMany ๊ด๊ณ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง 1. ๋ชจ๋ธ ์ฝ๋ ๐ Tag Model class Site(models.Model): """ ํญ๋ชฉ์ ๊ดํ ๋ฐ์ดํฐ ๋ชจ๋ธ """ title = models.CharField(verbose_name='ํ์ดํ', max_length=100)..
[ISSUE] ManytoMany ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ ๋ชจ๋ธ Bulk Create ์์[22.11.26] ๐ ManytoMany ๊ด๊ณ๋ฅผ ๊ฐ์ง ๋ ๋ชจ๋ธ Bulk Create ์์ โ๏ธ ํ์ฌ ์์ ๊ฐ์ด ๋ฑ๋ก๋ ํญ๋ชฉ์ ๋ํด ํ๊ทธ๋ฅผ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ๊ฐ๋ฐ ๊ตฌํ ์ค์ด๋ค. ๋ฑ๋ก๋ ํญ๋ชฉ์ Scrap Parsing์ ํตํด ํน์ ์ฌ์ดํธ์ ๊ด๋ จํ url, ์ธ๋ค์ผ, ์ ๋ชฉ ๋ฑ์ ์ ์ฅํ์ฌ ์ ๊ทผํ ์ ์๊ฒ ๊ตฌํํ ํํฉ ํ๋ฉด์ด๋ค. ํน์ ์ฌ์ดํธ๋ฅผ ์ ํํ์ฌ bulk(๋ค์ค)๋ก ํ๊ทธ๋ฅผ ๋ฑ๋กํ ์ ์๊ฒ ์คํฌ๋ฆฝํธ ๊ตฌํ ์ ํํ ๊ฐ Site์ Tag Model์ด ManytoMany ๊ด๊ณ๋ก ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง 1. ๋ชจ๋ธ ์ฝ๋ ๐ Tag Model class Site(models.Model): """ ํญ๋ชฉ์ ๊ดํ ๋ฐ์ดํฐ ๋ชจ๋ธ """ title = models.CharField(verbose_name='ํ์ดํ', max_length=100)..
2023.05.06 -
[22.11.26] ๐ ์ค๋ณต๋๋ฉฐ ๊ฐ ํจ์์ ์ฌ์ ์ ์ฒ๋ฆฌ๋๋ ์์ decorator ๐ SiteBulkAPIView - ๋ฒํฌ ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ญ์ class SiteBulkAPIView(APIView): """ ๋ฒํฌ ํญ๋ชฉ ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ญ์ api """ def get_list(self): pk_ids: list = self.request.data.get('pk_ids') return get_list_or_404(Site, id__in=pk_ids) def validate_ids(self): pk_ids: list = self.request.data.get('pk_ids') for id in pk_ids: get_object_or_404(Site,id=id) return self.get_list() def put(..
[ISSUE]decorator๋ฅผ ์ด์ฉํ ์ค๋ณต์์ ์ ์ฒ๋ฆฌ[22.11.26] ๐ ์ค๋ณต๋๋ฉฐ ๊ฐ ํจ์์ ์ฌ์ ์ ์ฒ๋ฆฌ๋๋ ์์ decorator ๐ SiteBulkAPIView - ๋ฒํฌ ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ญ์ class SiteBulkAPIView(APIView): """ ๋ฒํฌ ํญ๋ชฉ ์ฆ๊ฒจ์ฐพ๊ธฐ, ์ญ์ api """ def get_list(self): pk_ids: list = self.request.data.get('pk_ids') return get_list_or_404(Site, id__in=pk_ids) def validate_ids(self): pk_ids: list = self.request.data.get('pk_ids') for id in pk_ids: get_object_or_404(Site,id=id) return self.get_list() def put(..
2023.05.05 -
[22.11.20] Try to apply generics DestroyAPIView Generics View๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ โ๏ธ DRF๋ก ์๋ฒ๋จ์ rest_framework๊ฐ ์ง์ํด์ฃผ๋ generics View๋ฅผ ์ฌ์ฉํ์ง ์๊ณ APIView๋ง์ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค. โ๏ธ ๊ทธ๋ ๊ฒ ๊ฒฐ์ ํ ์ด์ ๋ generics ํ View๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ๊ฐ๋ฐํ๊ธฐ ํธ๋ฆฌํด์ง๊ธด ํ์ง๋ง ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ทธ๋ ๊ฒ ๊ฐ๊ฒฐํด์ง๊ณ ์๋๋๋ ๋ก์ง์ ํ์ ํ์ง ์๊ณ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ์ฐ๋ คํ์ฌ ์ฒ์์๋ ์์ ๋กญ๊ฒ customizing์ด ๊ฐ๋ฅํ APIView๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. APIView๋ก ์์ฑ๋ Bulk Delete โ๏ธ ํญ๋ชฉ์ ๋ค์ค์ผ๋ก ์ญ์ ํ๊ธฐ ์ํ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ํด ํด๋ผ์ด์ธํธ ๋จ์์ ..
[ISSUE] gernerics view, DestroyAPIView ์ ์ฉ[22.11.20] Try to apply generics DestroyAPIView Generics View๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ด์ โ๏ธ DRF๋ก ์๋ฒ๋จ์ rest_framework๊ฐ ์ง์ํด์ฃผ๋ generics View๋ฅผ ์ฌ์ฉํ์ง ์๊ณ APIView๋ง์ ์ด์ฉํ์ฌ ํ๋ก์ ํธ๋ฅผ ์งํํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค. โ๏ธ ๊ทธ๋ ๊ฒ ๊ฒฐ์ ํ ์ด์ ๋ generics ํ View๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง๊ณ ๊ฐ๋ฐํ๊ธฐ ํธ๋ฆฌํด์ง๊ธด ํ์ง๋ง ํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๊ทธ๋ ๊ฒ ๊ฐ๊ฒฐํด์ง๊ณ ์๋๋๋ ๋ก์ง์ ํ์ ํ์ง ์๊ณ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ์ฐ๋ คํ์ฌ ์ฒ์์๋ ์์ ๋กญ๊ฒ customizing์ด ๊ฐ๋ฅํ APIView๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ํ๋ค. APIView๋ก ์์ฑ๋ Bulk Delete โ๏ธ ํญ๋ชฉ์ ๋ค์ค์ผ๋ก ์ญ์ ํ๊ธฐ ์ํ ๊ธฐ๋ฅ ๊ฐ๋ฐ์ ์ํด ํด๋ผ์ด์ธํธ ๋จ์์ ..
2023.05.05 -
๊ฒ์ํ๊ณผ ํ์ด์ง์ ๊ตฌํํ๋ฉฐ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์๋ค. โ๏ธ {% csrf_token %}: ์๋ฒ์ api ํต์ ์ ํ์ํ ํฌ๋ก์ค ์ฌ์ดํธ ์์ฒญ ์์กฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๊ทธ โ๏ธ {% if %}{% else %}: ์กฐ๊ฑด์ ์ด์ฉํ์ฌ html์์ python ๋ฌธ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ โ๏ธ {% for item in items %}: for ๋ฃจํ๋ฅผ ์ด์ฉํ์ฌ html์์ python ๋ฌธ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ ๐ ์์ฐจ์ ์ถ๋ ฅ cycle โ๏ธ ๊ฒ์ํ์ ๊ตฌํํ๋ฉด์ ๋ถํธ์คํธ๋ฉ์ผ๋ก ๋์์ธ์ ์ ํ๊ณ , ์ง์์ ํ์ ๋ผ์ธ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์์ ๋ค๋ฅด๊ฒ ์ฃผ์๋ค. ์์ด๋ ์ ์ ์ด๋ฆ ์ด๋ฉ์ผ ๊ฐ์ ์ผ ํ์ดํ๋ ๊ฐ๊ฒฉ {% for user in users %} {{ user.id }} {{ user.username }} {{ user.email }} {{ u..
[Django] ๋ค์ํ ํ ํ๋ฆฟ ํ๊ทธ๊ฒ์ํ๊ณผ ํ์ด์ง์ ๊ตฌํํ๋ฉฐ ํ ํ๋ฆฟ ํ๊ทธ๋ฅผ ์ฌ์ฉํ์๋ค. โ๏ธ {% csrf_token %}: ์๋ฒ์ api ํต์ ์ ํ์ํ ํฌ๋ก์ค ์ฌ์ดํธ ์์ฒญ ์์กฐ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๊ทธ โ๏ธ {% if %}{% else %}: ์กฐ๊ฑด์ ์ด์ฉํ์ฌ html์์ python ๋ฌธ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ โ๏ธ {% for item in items %}: for ๋ฃจํ๋ฅผ ์ด์ฉํ์ฌ html์์ python ๋ฌธ๋ฒ ์ฌ์ฉ ๊ฐ๋ฅ ๐ ์์ฐจ์ ์ถ๋ ฅ cycle โ๏ธ ๊ฒ์ํ์ ๊ตฌํํ๋ฉด์ ๋ถํธ์คํธ๋ฉ์ผ๋ก ๋์์ธ์ ์ ํ๊ณ , ์ง์์ ํ์ ๋ผ์ธ์ ๋ฐฑ๊ทธ๋ผ์ด๋ ์์์ ๋ค๋ฅด๊ฒ ์ฃผ์๋ค. ์์ด๋ ์ ์ ์ด๋ฆ ์ด๋ฉ์ผ ๊ฐ์ ์ผ ํ์ดํ๋ ๊ฐ๊ฒฉ {% for user in users %} {{ user.id }} {{ user.username }} {{ user.email }} {{ u..
2023.05.04 -
์ฅ๊ณ ๊ฒ์ํ์ ๊ตฌํํ๊ธฐ ์ํด django-seed๋ฅผ ์ด์ฉํ์ฌ ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด๋ณด์๋ค. ํ์ง๋ง ๋ฌด์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ์๋ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค. โค ๋๋ฌ๋ณด๊ธฐ : Django ๊ฒ์ํ ๐ seed๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์์ฑํ๊ธฐ 1. django-seed ์ค์น $ pip3 install django-seed $ pip3 install psycopg2 $ pip3 freeze > requirements.txt โ๏ธ ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ฃผ๋ seed๋ฅผ ์ค์นํ์. ๐ ๋ฌด์์ ๋ฐ์ดํฐ ์์ฑ ๋ฐฉ๋ฒ $ python3 manage.py seed shortener --number=30 โ๏ธ ์ฝ๋ ์์ฑ ์์ด seed๋ง ์ฌ์ฉํ์ฌ app์ ์์ฑ๋ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์์..
[Django] django-seed๋ฅผ ์ด์ฉํ ๋ฐ์ดํฐ ๋ง๋ค๊ธฐ์ฅ๊ณ ๊ฒ์ํ์ ๊ตฌํํ๊ธฐ ์ํด django-seed๋ฅผ ์ด์ฉํ์ฌ ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ง๋ค์ด๋ณด์๋ค. ํ์ง๋ง ๋ฌด์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ด๋ฒ์๋ ์ฝ๋๋ฅผ ์์ฑํ์ฌ ๋ด๊ฐ ์ํ๋ ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ณด๋ ค๊ณ ํ๋ค. โค ๋๋ฌ๋ณด๊ธฐ : Django ๊ฒ์ํ ๐ seed๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ ์์ฑํ๊ธฐ 1. django-seed ์ค์น $ pip3 install django-seed $ pip3 install psycopg2 $ pip3 freeze > requirements.txt โ๏ธ ๋จผ์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ฃผ๋ seed๋ฅผ ์ค์นํ์. ๐ ๋ฌด์์ ๋ฐ์ดํฐ ์์ฑ ๋ฐฉ๋ฒ $ python3 manage.py seed shortener --number=30 โ๏ธ ์ฝ๋ ์์ฑ ์์ด seed๋ง ์ฌ์ฉํ์ฌ app์ ์์ฑ๋ ๋ชจ๋ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฌด์์..
2023.05.03 -
๐ Django๋ก ์ปค์คํ ์ปค๋งจ๋ ๋ง๋ค๊ธฐ ์ฅ๊ณ manage.py์ ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋ค.์ปค์คํ ์ปค๋งจ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก manage.py๋ถํฐ ์ฌ์ฉํ ์ ์๋ ์ปค๋งจ๋๋ฅผ ๋๋ฆด ์๊ฐ ์๋ค. ์ง๊ธ๋ถํฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ปค๋งจ๋๋ก ๋ง๋ค์ด์ ์ฌ์ฉํ์ฌ ๋ณด์. ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋ ๊ฐ์ ๋ชจ๋ธ ๋ง๋ค๊ธฐ ์ปค๋งจ๋ ์์ฑ ์ปค๋งจ๋ ์คํ ์ปค๋งจ๋ ์์ธํ ์์๋ณด๊ธฐ ๐ ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋ ๊ฐ์ Django ์ปค์คํ ์ปค๋งจ๋๋ Django์์ ์์ฑํ๋ ์ฑ๋ง๋ค ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ปค์คํ ํ์ฌ ๋ง๋ค์ด์ง ์ปค๋งจ๋๋ manage.py์์ ์คํํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ด๊ฐ showuser๋ผ๋ ์ปค๋งจ๋๋ฅผ ๋ง๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๊ฒ๋๋ค. python3 manage.py showuser Django์์ ๊ด๋ฆฌ์ฉ์ผ๋ก ๋ชจ๋ธ์ ์กฐ์ํ๊ฑฐ๋ ์ฐธ์กฐํ๊ณ ..
[Django] Django ์ปค์คํ ์ปค๋งจ๋ ๋ง๋ค๊ธฐ๐ Django๋ก ์ปค์คํ ์ปค๋งจ๋ ๋ง๋ค๊ธฐ ์ฅ๊ณ manage.py์ ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋๋ฅผ ๋ง๋ค์ด ์ฌ์ฉํ ์ ์๋ค.์ปค์คํ ์ปค๋งจ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ผ๋ก manage.py๋ถํฐ ์ฌ์ฉํ ์ ์๋ ์ปค๋งจ๋๋ฅผ ๋๋ฆด ์๊ฐ ์๋ค. ์ง๊ธ๋ถํฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ปค๋งจ๋๋ก ๋ง๋ค์ด์ ์ฌ์ฉํ์ฌ ๋ณด์. ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋ ๊ฐ์ ๋ชจ๋ธ ๋ง๋ค๊ธฐ ์ปค๋งจ๋ ์์ฑ ์ปค๋งจ๋ ์คํ ์ปค๋งจ๋ ์์ธํ ์์๋ณด๊ธฐ ๐ ์ฌ์ฉ์ ์ง์ ์ปค๋งจ๋ ๊ฐ์ Django ์ปค์คํ ์ปค๋งจ๋๋ Django์์ ์์ฑํ๋ ์ฑ๋ง๋ค ๋ง๋ค ์ ์์ผ๋ฉฐ, ์ปค์คํ ํ์ฌ ๋ง๋ค์ด์ง ์ปค๋งจ๋๋ manage.py์์ ์คํํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ๋ด๊ฐ showuser๋ผ๋ ์ปค๋งจ๋๋ฅผ ๋ง๋ค๋ฉด ์๋์ ๊ฐ์ด ์ฌ์ฉํ ์ ์๊ฒ๋๋ค. python3 manage.py showuser Django์์ ๊ด๋ฆฌ์ฉ์ผ๋ก ๋ชจ๋ธ์ ์กฐ์ํ๊ฑฐ๋ ์ฐธ์กฐํ๊ณ ..
2023.05.02 -
Django debug_toolbar๋? โค ๋๋ฒ๊ทธ ํด๋ฐ์ ๊ธฐ๋ฅ - ํ์ฌ request / response์ ๋ํ ๋ค์ํ ๋๋ฒ๊น ์ ๋ณด ํ์ธ ๊ฐ๋ฅ - ๋ค์ํ Panel ์ง์ํ๋ฉฐ, SQL Panel์ ํตํด ๊ฐ ์์ฒญ ์ฒ๋ฆฌ ์ ๋ฐ์ํ SQL ๋ด์ญ ํ์ธ ๊ฐ๋ฅ - ๋จ, Ajax ์์ฒญ์ ๋ํ ์ง์์ ๋ถ๊ฐ๋ฅ ํ๋ค๊ณ ํ๋ค. Django debug_toolbar ์ค์น Django Debug Toolbar — Django Debug Toolbar 3.7.0 documentation © Copyright 2022, Django Debug Toolbar developers and contributors Revision 4cf595c8. django-debug-toolbar.readthedocs.io โค django-debug-..
[Django] debug_toolbar ์ฌ์ฉํ๊ธฐDjango debug_toolbar๋? โค ๋๋ฒ๊ทธ ํด๋ฐ์ ๊ธฐ๋ฅ - ํ์ฌ request / response์ ๋ํ ๋ค์ํ ๋๋ฒ๊น ์ ๋ณด ํ์ธ ๊ฐ๋ฅ - ๋ค์ํ Panel ์ง์ํ๋ฉฐ, SQL Panel์ ํตํด ๊ฐ ์์ฒญ ์ฒ๋ฆฌ ์ ๋ฐ์ํ SQL ๋ด์ญ ํ์ธ ๊ฐ๋ฅ - ๋จ, Ajax ์์ฒญ์ ๋ํ ์ง์์ ๋ถ๊ฐ๋ฅ ํ๋ค๊ณ ํ๋ค. Django debug_toolbar ์ค์น Django Debug Toolbar — Django Debug Toolbar 3.7.0 documentation © Copyright 2022, Django Debug Toolbar developers and contributors Revision 4cf595c8. django-debug-toolbar.readthedocs.io โค django-debug-..
2023.04.06