본문 바로가기
관리자

Programming-[Backend]/Django

Django로 Pinterest 따라 만들기-13. MobileResponsive Layout 구현

728x90
반응형

 

이번 글에서는 Mobile 화면의 Layout에 맞게 조금 수정해본다.

 

1. 서버 세팅 및 모바일 접속

 

0.0.0.0:8000

모바일에서 접속이 가능하도록 하기 위해서 0.0.0.0으로 서버를 실행한다. 0.0.0.0 ip로 실행하는 것은, 서버 컴퓨터의 ip주소를 정확히 알 수 없을 때 사용한다고 한다. 물론 ip 주소를 cmd->ipconfig를 통해서 직접 알아내도 된다.

'python manage.py runserver 0.0.0.0:8000'

 

 

ALLOWED_HOSTS

 

settings.py에서 접속하는 컴퓨터의 ip 허용값을 설정해준다. 리스트에 모든 사용자를 허용한다는 의미로 '*'을 입력해준다. 다만 이것은 컴퓨터와 핸드폰이 네트워크상 같은 공유기에 접속해 있을 때만 허용되는 옵션이라고 한다.

 

settings.py 일부

ALLOWED_HOSTS = ['*']

 

 

방화벽 인바운드 규칙 추가

 

혹시 방화벽으로 막혀있는 상태일 수 있다. 그러면 윈도우 검색 > 방화벽 상태 확인 > 왼쪽 고급 설정 탭 > 인바운드 규칙 > 오른쪽 새 규칙 > 포트 > TCP/특정연결포트 : 8000 > 연결 허용 > 도메인/개인/공용 > 이름 설정

 

과정을 거치면 방화벽이 해제되어 접근이 가능하다.

 

그리고 핸드폰에서 해당 컴퓨터의 ip로 접속해보자. 컴퓨터의 ip 주소는 상기 언급한 것처럼 cmd -> ipconfig : IpV4 주소로 알아내면 된다.

ip주소:8000/articles/list

 

 

만약 모바일 접근이 어렵다면, 그냥 개발자 도구에서 mobile layout으로 봐도 될 것 같다...

 

 


 

2. CSS 수정

 

 

head.html 에 meta 태그 추가

<meta name="viewport" content="width=device-width initial-scale=1, shrink-to-fit=no">

 

 

articleapp/list.html

container 부분을 수정한다. 이미지를 둘러싸고 있는 container의 padding, margin을 조절하고, a 태그의 width를 45%, 화면이 커져도 최대로 250px까지만 되도록 한다.

.container {
    padding: 0;
    margin: 0 auto;
}

.container a {
    width: 45%;
    max-width: 250px;
}

.container div {
	{# width, bg-color 부분 삭제 #}
	{#width: 280px;#}
	{#background-color: antiquewhite;#} 
	display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 8px;
}

 

static/js/magicGrid.js

gutter : 12로 수정하여 각 그림간 간격을 줄인다.

let magicGrid = new MagicGrid({
  container: '.container',
  animate: true,
  gutter: 12,
  static: true,
  useMin: true
});

 

js파일 캐시 중단

js 파일에서 gutter 부분을 변경해도 변경되지 않는다면, 개발자도구-network탭-Disable Cache 부분에 체크를 하면 제대로 적용될 수 있다. js 파일 같은 static한 요소들은 브라우저가 cache로 갖고 있기 때문에, 이 옵션으로 js 파일을 계속 서버에서 불러오는 방식을 적용할 수 있다는 것을 기억하자.

 

 

 

 

@media screen 설정

 

화면 폭이 일정 이상 좁아졌을 때, 글자 크기도 줄어들도록 한다. 혹시 잘 확인이 안된다면, font-size를 5px 정도로 작게해서 responsive 화면 테스트를 해보면 된다.

@media screen and (max-width: 500px) {
    html {
        font-size: 13px;
    }
}

 

 

 

 


 

 

참조

1. 작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지-박형석님 인프런 강의

https://www.inflearn.com/course/%EC%9E%A5%EA%B3%A0-%ED%95%80%ED%84%B0%EB%A0%88%EC%8A%A4%ED%8A%B8/dashboard

728x90
반응형