카테고리 보관물: 프로그래밍

requests에서 GET 요청 시 동일한 이름의 파라미터 전달하기

파이썬 requests 라이브러리를 사용할 때 간혹 요청 대상 사이트의 URL 설계에 따라 같은 이름의 URL 파라미터명을 사용하는 경우가 있다. 즉, 아래와 같은 URL인데, item이라는 이름으로 여러 값을 전달하도록 돼 있는 경우다.

https://example.com?action=buy&item=사과&item=바나나&item=딸기

그런데 무심코 해당 부분을 다음과 같이 뽑아서 요청을 보냈더니 이름이 같아서 값 하나만 전송되는 결과가 발생했다.

data = {
    'action': 'buy',
    'item': '사과',
    'item': '바나나',
    'item': '딸기',
}

resp = session.get(url, params=data)

그래서 구글링해보니 위와 같은 경우에는 다음과 같이 리스트 타입으로 지정하면 처음 의도한 바대로 전송된다.

data = {
    'action': 'buy',
    'item': ['사과', '바나나', '딸기'],
}

resp = session.get(url, params=data)

워드프레스에서 ‘private’ 상태의 글 표시하기

워드프레스에서는 글의 가시성(visibility)이 private이면 해당 글이 속한 카테고리에도 집계되지 않는 듯하다. 그런데 특정 페이지에서 가시성이 private인 글을 보여줘야 할 필요성이 있어서 이것저것 실험해 봤는데, 결국 functions.php 파일에 아래와 같은 코드를 추가해서 해결했다.

function show_private_post( $query ) {
    if (is_admin()) {
        return ;
    }    

    if ($query->is_front_page()) {
        return ;
    }    

    if (is_category('the_category'))) {
        $query->set('post_status', array('private', 'publish'));
    }    
}
add_action( 'pre_get_posts', 'show_private_post' );

첫 번째 조건을 걸지 않으면 관리자 페이지에서 ‘비공개(private)’인 글만 보고 싶을 때 전체 글이 표시되는 문제가 생기고, 두 번째 조건은 인덱스 페이지에서 비공개인 글을 표시하지 않기 위해서 추가했다. 마지막 조건에서는 글이 속한 카테고리에 따라 글의 상태를 privatepublish로 설정해서 get_posts 함수의 결과에 포함하도록 만들었다.

웹 페이지용 코딩 폰트

이번에 블로그 테마를 반응형 디자인을 지원하는 걸로 바꿨는데 PC에서 확인했을 때는 괜찮았는데 모바일에서 확인했을 때는 코드 폰트가 고정폭 글꼴이 아니라서 어떻게 해야 할지 찾아봤다. 결론적으로 더 많은 고정폭 글꼴을 font-family로 지원하면 된다. 그래서 아래 글을 참고해서 style.css 파일의 내용을 수정했다.

font-family: Consolas, Menlo, Monaco, 'Lucida Console', 'Liberation Mono', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Courier New', monospace, serif;