๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ชBackend/Django

Django๋กœ Pinterest ๋”ฐ๋ผ๋งŒ๋“ค๊ธฐ : ์„น์…˜ 1. Django Tutorial (11 ~ 13๊ฐ•)

#11 Static ์„ค์ • ๋ฐ CSS ํŒŒ์ผ ๋ถ„๋ฆฌ

  • css ํŒŒ์ผ : ๋””์ž์ธ ํŒŒ์ผ๋งŒ ๋ถ„๋ฆฌํ•œ ๊ฒƒ (html์˜ ๋ผˆ๋Œ€๋งŒ ๋‚จ๊ฒจ๋‘๊ณ  ๋”ฐ๋กœ ๋นผ์„œ ๊ด€๋ฆฌํ•จ)
  • ์ด์ „๊ฐ•์˜๊นŒ์ง€๋Š” ์ด๋ฅผ style=๋กœ ์ง์ ‘ html ํŒŒ์ผ ์•ˆ์— ๋„ฃ์–ด์คฌ์—ˆ์Œ

 

๋ถ„๋ฆฌํ•˜๊ธฐ ์ „์— Static ์„ค์ • ํ•„์š”

pragmatic>settings.py ์—์„œ STATIC_ROOT ์„ค์ •ํ•ด์ฃผ๊ธฐ

STATIC_ROOT=os.path.join(BASE_DIR,'staticfiles')

static dir์„ ์„ค์ •ํ•ด์ค˜์„œ app์— ์ข…์†๋˜์–ด์žˆ์ง€ ์•Š์€ ๋‹ค๋ฅธ static ํŒŒ์ผ๋“ค๋„ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ

 

 

head.html ์ˆ˜์ •

{% load static %}

์„ head.html์— ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ

⇒ static ํŒŒ์ผ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก..

<link rel="stylesheet" type="text/css" href="{% static 'base.css' %}">

์–ด๋Š ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ๊ฑด์ง€ css link๋„ ์ถ”๊ฐ€ํ•ด์คŒ

 

 

base.css ์— style ์ถ”๊ฐ€

class ์ด๋ฆ„ ์„ค์ •ํ•ด์ฃผ๊ณ 

base.css์—์„œ class์— ๋“ค์–ด๊ฐˆ ๋‚ด์šฉ ๋„ฃ์–ด์ฃผ๊ธฐ

.class ์ด๋ฆ„{

style ๋‚ด์šฉ

}

 

๊ฐœ๋ฐœ์ž๋ชจ๋“œ์—์„œ ํ™•์ธํ•ด๋ณด๋ฉด style์— ๋“ค์–ด์žˆ๋˜ ๊ฐ’์ด .pragmatic_footer_logo๋กœ ์ž˜ ์ ์šฉ๋œ ๊ฒƒ ๋ณผ ์ˆ˜์žˆ์Œ

 

 


 

 

#12 CSS ๊ฐ„๋‹จ ํ•ต์‹ฌ

Cascading Style Sheet : html์„ ์Šคํƒ€์ผ๋ง ํ•˜๊ธฐ ์œ„ํ•œ ์Šคํƒ€์ผ ๋ฌถ์Œ

 

DISPLAY ์†์„ฑ

  • Block

        ๋ถ€๋ชจ์˜ ์ตœ๋Œ€ ๋†’์ด(?)๋ฅผ ๊ฐ€์ ธ์˜ด

 

  • Inline 

       ๋ง ๊ทธ๋Œ€๋กœ ์ค„ ์•ˆ์— ๊ธ€์”จ๊ฐ€ ๋“ค์–ด๊ฐ€์žˆ์œผ๋ฉด ๊ทธ ๊ธ€์”จ์˜ ๋†’์ด๋งŒํผ๋งŒ ๊ฐ€์ ธ์˜ด

  • Inline-block

       inline์ธ๋ฐ block ์ฒ˜๋Ÿผ ์Œ“์ด๋Š”

  • None

        ์žˆ๊ธด ์žˆ๋Š”๋ฐ ์‹œ๊ฐํ™”๋˜๋Š” ๊ณผ์ •์—์„œ ์•„๋ฌด๊ฒƒ๋„ X

 

 

 

Visibility ์†์„ฑ

Hidden

none๊ณผ ๋น„๊ตํ–ˆ์„ ๋•Œ, display none์€ ์•„์˜ˆ ๊ทธ๊ฒŒ ์—†๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ ๋ฐ˜์‘ํ•˜๋‚˜,

hidden์˜ ๊ฒฝ์šฐ, ํ™”๋ฉด์ƒ์—์„œ ์•ˆ๋ณด์ด์ง€๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ (์œ„์น˜๋ฅผ ์ฐจ์ง€ํ•จ)

 

Size

ํฌ๊ธฐ : responsive ⇒ ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฌ๊ธฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ํ†ต์ œ๋ ฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์–ด์•ผํ•จ.

  • px: child์˜ ๊ฐ€๋กœ ์„ธ๋กœ ๋„ˆ๋น„๊ฐ€ 100x100px ์ด๋ผ๋ฉด ๋ถ€๋ชจ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ณ€ํ•˜๋“  ์ƒ๊ด€์—†์ด ๋ฌด์กฐ๊ฑด ํฌ๊ธฐ ๊ณ ์ •
  • em :๋ถ€๋ชจ์˜ ํฐํŠธ ์‚ฌ์ด์ฆˆ๊ฐ€ ํฌ๊ณ  ์ž‘์•„์ง€๋Š” ๋Œ€๋กœ ๋”ฐ๋ผ๊ฐ/. ๋ถ€๋ชจ๊ฐ€ 1.5๋ฐฐ๋ฉด child๋„ 1.5 ๋ฐฐ๊ฐ€ ๋จ.
    • ๊ทผ๋ฐ ๋ถ€๋ชจ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ธ ๊ฒฝ์šฐ (์ค‘์ฒฉ๋œ ๊ฒฝ์šฐ)๋Š” ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์›Œ์„œ X  
    • ex) ๋งŒ์•ฝ ์œ„์œ„์˜ ๋ถ€๋ชจ๊ฐ€ 2๋ฐฐ, ์œ„์˜ ๋ถ€๋ชจ๊ฐ€ 2๋ฐฐ๊ฐ€ ๋œ ๊ฒฝ์šฐ ์ž์‹์€ 4๋ฐฐ๊ฐ€ ๋จ..
  • rem : ๊ฐ€์žฅ ๋งŽ์€ ๊ณณ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ๊ฒƒ

        ( HTML์— ๊ธฐ๋ณธ์ ์šฉ ๋˜๋Š” ํฐํŠธ ํฌ๊ธฐ : 16px ์ฆ‰, 1rem = 16px)

        ๋ถ€๋ชจ๊ฐ€ ์žˆ๊ณ  ์ž์‹์ด ์žˆ์œผ๋ฉด root HTML์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์ ์šฉ๋œ ํฐํŠธ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ํ•˜์—ฌ ๋ฐ”๋กœ ์œ„์˜ ๋ถ€๋ชจ๊ฐ€ ์ปค์ง€๋“  ์ž‘์•„          ์ง€๋“  ๊ฐ€๋งŒํžˆ ์žˆ์œผ๋‚˜, ๊ทธ ํฐํŠธ ๊ฐ’์ด ๋ณ€ํ™”๋˜๋ฉด ๊ทธ ๋ณ€ํ™”๋ฅผ ๋”ฐ๋ผ๊ฐ ( ์ฆ‰, ๋ฐ˜์‘ํ˜•์œผ๋กœ ๋งŒ๋“ค๊ธฐ ์‰ฌ์›€~)

  • %

 

 

 


 

#13 CSS display ์†์„ฑ, rem ๋‹จ์œ„ ์‹ค์Šต

 

12๊ฐ•์—์„œ ๋ฐฐ์šด ์†์„ฑ ๋‚ด์šฉ๋“ค์„ ์‹ค์Šต

์ด๋Ÿฐ์‹์œผ๋กœ css ํŒŒ์ผ ๋Œ€์‹  html ํŒŒ์ผ ๋‚ด์—์„œ๋„ class ์ƒ์„ฑ ๋ฐ ์„ ์–ธ ๊ฐ€๋Šฅ

 

์ฆ‰, style์„ ์„ค์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์€

  1. ํƒœ๊ทธ ๋‚ด์—์„œ style=๋กœ ์„ ์–ธํ•ด์ฃผ๊ธฐ
  2. ํ•ด๋‹นํ•˜๋Š” html ํŒŒ์ผ์—์„œ <style> ๋”ฐ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ์ ์–ด์ฃผ๊ธฐ
  3. ๋”ฐ๋กœ css ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๊ธฐ

 

๊ฐ€ ์žˆ์œผ๋ฉฐ, ์ ์šฉ๋˜๋Š” ์ˆœ์„œ๋Š” 1→2→3์ž„.

<div class="testing" style="display:block">block</div>
<div class="testing" style="display:inline">inline</div>
<div class="testing" style="display:inline-block">inline=block</div>
<div class="testing">default</div>

์œ„์™€ ๊ฐ™์ด ์ ์šฉํ•˜๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ !

  • div ์˜ default ๋Š” block์œผ๋กœ ์ ์šฉ๋จ

       ⇒ block ์„ ์—ฌ๋Ÿฌ๊ฐœ ์Œ“์œผ๋ฉด width๋ฅผ ๋‹ค ๊ฐ€์ ธ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ง์œผ๋กœ ์Œ“์ž„

       ⇒ inline์„ ์—ฌ๋Ÿฌ๊ฐœ ์Œ“์œผ๋ฉด ํ•ด๋‹นํ•˜๋Š” ์ค„๋งŒํผ๋งŒ ๊ฐ€์ ธ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์˜†์œผ๋กœ ์Œ“์ž„

  • span์˜ default๋Š” inline

 

 

!์‹ค์Šต ์ฝ”๋“œ๋ผ ์ปค๋ฐ‹ํ•˜๊ธฐ ์‹ซ์„ ๋•Œ!

$ git reset --hard HEAD

ํ•ด์„œ ๋งˆ์ง€๋ง‰ ์ปค๋ฐ‹ ์˜ฌ๋ฆฌ๊ธฐ ์ „ ์ƒํƒœ๋กœ ๋˜๋Œ์•„๊ฐ€๊ธฐ

 

 


 

๋ฐ•ํ™์„๋‹˜์˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•ด๋ณด๋Š” ๊ธ€์ž…๋‹ˆ๋‹ค.

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

 

์ž‘์ •ํ•˜๊ณ  ์žฅ๊ณ ! Django๋กœ Pinterest ๋”ฐ๋ผ๋งŒ๋“ค๊ธฐ : ๋ฐ”๋‹ฅ๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ๊ฐ•์˜ - ์ธํ”„๋Ÿฐ

Python์˜ ๋Œ€ํ‘œ ์›น ํ”„๋ ˆ์ž„์›Œํฌ django๋ฅผ ์ด์šฉํ•ด Pinterest ํŠน์œ ์˜ ์นด๋“œํ˜• ๋ ˆ์ด์•„์›ƒ ๋””์ž์ธ์„ ๋ณธ๋”ด ์›น์„œ๋น„์Šค ๊ตฌํ˜„ํ•ด๋ด…๋‹ˆ๋‹ค., django, docker ์‹ค์ „ ๊ฐœ๋ฐœ์„ ํ†ตํ•ด ํ•œ ๋‹จ๊ณ„ ๋†’์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜