본문 바로가기
반응형

django8

Django 다수 업데이트할때 bulk_ 활용하기 다수의 데이터를 저장할때, 예를 들어 이렇게 대량의 이미지를 저장한다고 해보겠습니다. # ex len(data_list) = 100개 for count, data in enumerate(data_list): data.img = img[count] data.title = title[count] data.save() 가장 간단하게 생각해보면 이렇게 하는게 가장 쉬운 것 같습니다. 뭐 단 한번 이렇게 한다면 크게 문제될것은 없을 수 있습니다. 뭐 사용자가 이렇게하는게 아니고 관리지만 쓴다던지 그럴때도 간편하게 한번 짤 수 있을것입니다. 하지만 이때 리스트가 100개라면 쿼리는 100개가 발생 하게 됩니다. 많다면 많고 적다면 적을 수 있습니다. 그렇다면 어떻게 해야 효율적으로 짤수 있을까요?? creat_li.. 2021. 1. 3.
[CRITICAL] WORKER TIMEOUT (pid:00000) 이전 포스팅처럼 timeout 에러가 떴지만 변함없이 얼마지나지 않아 timeout에러가 계속 뜨는것이였습니다. 이유를 좀 찾아봐야지. 로그를 뒤져보기 시작했습니다. 서버가 스타트되면 gunicorn worker들이 일을 시작하게 됩니다~ 저는 2 core 서버를 쓰기때문에 worker가 5개가 보이네요 // worker = core * 2 + 1 [CRITICAL] WORKER TIMEOUT (pid:32200) 5개의 woker중에 pid 32200번이 아주 심각한 문제가 터졌다는 신호를 보냈습니다. 순간 정신이 번쩍 떠졌습니다. "아 timeout은 nginx에서만 있는게 아니구나!" 바로 문서를 찾아봤습니다. -t INT, --timeout INT / 보통 30초로 세팅하는것이 일반적 그래서 저는.. 2020. 5. 27.
캐시의 중요성을 깨닫..다 Django를 공부하면서 개발까지 모든 걸 혼자 해야 하다 보니 우선순위를 정해서 진행할 수밖에 없었네요;; 처음 python을 배우고 > Django를 배우고 > HTML, CSS, Javascript를 배우고 > ubuntu 과정으로 학습하고 있습니다. 모두 겉핥기 식으로 학습하고 있는 것 같아 속상하긴 합니다ㅠ "우선 돌아가게 하고 보자!"라는 신념으로 이것저것 만들어보고 기능도 붙여봤습니다. 최적화야 우선 돌아가야 하고 고치든 폐기하든 할 수 있다고 생각을 했습니다~ 혼자 만드는 프로젝트지만 데이터를 입력하다 보니 데이터베이스의 한 테이블에는 60만 줄의 row가 쌓이는 필드가 있었습니다. 갈수록 더 많은 row가 쌓이게 될 것이라고 생각되는 부분이었습니다. 제 생각에 쇼핑몰 서비스라면 대부분 동.. 2020. 5. 23.
Out of range value for column (SQLite is working but MySQL is not working) 저는 고객에게 입력받는 텍스트 데이터의 경우 안전성을 위해 당연한 이야기겠지만 항상 form 검증을 거치고 있습니다. (나 혼자만 쓰는거라면 내가 공격하지 않으면 뭐 큰일이 없겠죠? ㅎ) 저는 혹시 모를 부분을 방지하기위해 한번 딕셔너리로 정리하는 편인데요 이것도 개발 방식에 따라 매번 달라지는것 같습니다. 프론트엔드와 백엔드를 나누냐 장고 개발자들이 장고 템플릿을 써서 개발하는지 그런게 많이 좌우할것 같긴합니다. 저는 독학이다 보니 협업도 안해봤고 프론트, 백엔드로 안해봤지만 혼자 REST API를 만들고 하다보니 나눌수밖에 없는 경우가 생기기는 하더라고요 order_dic = {} order_dic['order_date'] = order_date #str order_dic['company'] = co.. 2020. 5. 18.
파일 삭제하면 미디어 폴더에서도 파일 삭제하기 첫 프로젝트를 만들면서 가장 걱정이 되는 부분은 아무래도 서버 관리가 아닐까 싶습니다. 파이썬 기반 장고의 경우 ORM 및 Gunicorn과 같이 간편하게 서버와 DB를 운용할 수 있도록 지원해줍니다. 실제 서비스가 진행되면 데이터를 함부로 지울 수 없기 때문에 처음에 세팅해두는 것이 중요하다고 생각이 들었습니다. 텍스트의 경우 크게 걱정이 되질 않았지만 파일과 이미지는 걱정이 많이 되었습니다. 저장 공간도 비용! 트래픽도 비용! 유지도 비용! 다 비용입니다. 그런데 장고의 경우 파일을 업로드하고 지우더라도 데이터 베이스에서는 지워지더라도 파일은 그대로 남아 있게 됩니다. 지웠다고 모든 내용과 파일이 지워지는 것도 큰일이기 때문에 해당 정책이 맞다고는 생각하지만 그래도 필요한 경우가 상당히 많이 있습니다.. 2020. 4. 14.
Django란? #Python #웹 프레임워크 Django는 현재 Python으로 웹 개발할 때 사용할 수 있는 제가 생각하기에 아주 강력한 프레임워크입니다. 2005년 7월 15일부터 출시되어 2020년 4월 8일 기준 3. 대 버전까지 나와있습니다. 웹 개발을 처음 입문하는 분들은 Django 쉬우면서 어려우실 수 있습니다. 우선 디잔고? ㄷ장오? 뭐라고 읽어야할지 한글을 쓰는 우리에게는 어렵죠 처음에 찾아볼때 저는 어무해로 기억했었죠. (한/영 타이핑 시 어무해) 쥉고라고 하는 것도 같고 주웽고라고 하는것도 같고 하지만 한글로는 대부분 장고라고 하는것 같습니다~(당연한 이야기) 본론으로 돌아와 초보자 시점에서 좋은 점과 어려운점을 간략하게 정리해보았습니다. (startproject, startapp, createsuperuser를 하실 줄 안다.. 2020. 4. 9.
Django Template에서 HTML과 섞인 Django 코드가 뭔가 이상하다? python으로 개발하시는 분들은 정말 많은분들이 파이참(Pycharm)을 사용하시는것같습니다. JetBrains사에서 제작한 Python에 최적화 된 IDE입니다. 다른 제트브레인사의 제품처럼 기본 바탕은 IntelliJ IDEA에 기반을 두고있습니다. IDE를 사용한다는것 자체가 코드를 깔끔하게 보는것과 동시에 생산성을 높이기 위함인데요~ 하지만 기능이 많아도 너무 많다보니 이 기능을 다 못쓰는 경우가 허다합니다. IDE가 없다고 개발이 불가능한건 아닙니다. 하지만 하루면 끝날 일이 한달이 걸리는 마법 같은 경험을 하시게 될 것입니다. 아무튼 어떤 회사의 제품을 사용하시든 IDE를 최대한(무조건) 사용하시는걸 권장드려요~ 본론으로 돌아와 장고를 개발하시거나 공부하다보면 장고 템플릿을 사용하게 됩니다... 2020. 3. 30.
코딩 블로그를 시작하며 'Hello world' 세상(코딩 업종)은 모르는 사람들과도 더 효율적인 방안을 고민하고 공유하는 특별한 문화가 있다는 것을 접하고 코딩에 매력에 빠져 코딩을 시작하게 되었습니다. "늦었다고 생각할때가 가장 빠르다"는 말을 생각하며 즉시 python과 django 코딩을 배우기 시작했습니다. 이제 한 1년정도 지나왔지만 더 나은 실력 향상을 위해 블로그 작성을 하기로 마음 먹었습니다. (사실 매일 했던거 까먹고 또 찾고, 또 찾고 반복해서 그냥 적어두려는것입니다) Python과 Django를 독학하며 프로젝트를 진행하며 생기는 대부분의 상황을 기술하기 위한 블로그입니다. 학습용으로 작성하다보니 오류가 있을 수 있으니 참고하실 분들은 이점 유의하여 주시기 바랍니다~ 그리고 일반적인 코딩 정석?과 많이 다.. 2020. 3. 30.
반응형