postgresql에서 random 함수를 쓰면서 generate_series 함수를 썼습니다. 오늘 이 함수에 대해서 조금 더 자세히 알아보도록 하겠습니다. 먼저, 숫자형에 대해서는, 이렇게 2가지 인자를 줄 수 있습니다. 이 때에는 step이 1입니다. 1씩 증가한다는 의미입니다. start가 1이고, end가 10인데요. 1부터 10까지 순서대로 결과에 나타납니다. 1부터 10까지 출력됨을 볼 수 있어요. 그런데 4씩 증가하게 할 수 없을까요? 3번째 인자로 4를 주면 됩니다. start가 1이고, end가 10, step이 4이므로, 1, 5, 9만 출력됩니다. 9 다음에 13인데요. 13은 10보다 크기 때문에, 출력되지 않습니다. 결과를 보면 1, 5, 9만 나왔음을 알 수 있습니다. 반대로,..
전체 글 검색 결과
안녕하세요. 이번 시간에는 postgresql에서 random 함수를 알아보겠습니다. random 함수는 꽤 간단하게 쓸 수 있습니다. 그냥 random(). 끝입니다. 결과를 보시면 0.1816107987이 나옵니다. 또 다시 호출해 보겠습니다. 이번에는 0.3785214382가 나오네요. 문서에 따르면 이 함수는 0 이상 1 미만인 실수를 돌려준다고 되어 있어요. 추가로 언급된 부분은, security한 랜덤을 원한다면 crypto를 알아보라고 되어 있어요. 그러면 위 쿼리는 무엇을 하는 것일까요? 일단 random()*100이면, 0이상 100미만인 랜덤 실수를 뽑습니다. 그런데 floor가 붙었네요. 바닥 함수이므로, [0, 99]의 랜덤한 정수를 뽑습니다. 70은 0이상 99이하의 정수이니, 해..
장고에서, 조건을 만족하는 오브젝트가 있으면 해당 오브젝트를 리턴하고, 없으면 404 처리를 하고 싶습니다. 이 때 저는 보통 어떻게 했냐면, exist 하지 않으면 404 response를 날리고, 아니면, 오브젝트르 가져와서 리턴했습니다. 그런데, 이를 좀 더 간단하게 처리해 줄 수 있는 함수가 있는데요. get_object_or_404입니다. 먼저 post 모델은 위와 같습니다. 작성자인 user는 User를 참조하는 Foreign key를 들고 있습니다. 이 User는 장고에서 기본으로 제공되는 Auth의 User를 의미합니다. 다음에 post는 포스트 내용을 의미해요. 뭔가 네이밍이 이상한 것 같지만 넘어갑시다. Post 관련 admin View에서, 포스트를 쓴 유저 이름을 얻어오게 바꾸었습니..
django를 처음 접했을 때, 헷갈리던 것이 null=True 옵션과 blank=True 옵션이였습니다. 이 둘에 대해 간단하게 알아보겠습니다. 먼저, null=True 값을 주고 migration을 해 보겠습니다. myapp_post 테이블을 생성하는 쿼리를 봅시다. 그러면 post에 NULL이 붙어 있는 것을 볼 수 있는데요. 이는 널 값을 허용한다는 의미입니다. 저는 sqlite를 써서 쿼리가 요래 생성되었습니다. 그냥 아무런 값도 추가하지 않았더니 NULL이 들어간 것을 볼 수 있습니다. NULL 값을 추가한 다음에 장고 어드민에서 해당 포스트를 수정해 보겠습니다. 빈 값으로 냅뒀더니, This field is required 라고 뜹니다. 이는 null=True 옵션이 Form에서 빈 값을 허..
안녕하세요. 이번 시간에는 파이썬 operator의 itemgetter 함수에 대해 알아봅시다. 먼저, itemgetter 함수는, callable object를 리턴한다고 되어 있어요. 그래서, f = itemgetter(2)를 하면, f(r)을 불렀을 때 r[2]가 리턴된다고 되어 있습니다. 이게 무슨 소리인지 문서에 나와 있는 코드를 보겠습니다. 대충 요런 함수인데요. 일단은 뭔가 리턴하는데 g를 리턴해 버립니다. 그리고 이 g는 obj를 받습니다. 이로 미루어 보았을 때, 함수 itemgetter는 호출 함수인 caller를 리턴하고, 이 caller가 실제로 iterable한 놈을 넘겨받아서 x번째 원소를 리턴하는 일을 수행한다고 봐도 되겠군요. 그러면 이걸 어떻게 바깥에서 쓸까요? 먼저, 2번..
최근댓글