πŸ”₯ μž₯κ³  파일 μ΄ν•΄ν•˜κΈ°

may_soouuΒ·2020λ…„ 8μ›” 26일
1

Django

λͺ©λ‘ 보기
2/9

μž₯κ³  파일 μ΄ν•΄ν•˜κΈ°

μž‘μ„±ν•΄λ†“κ³  μ €μž₯κΉŒμ§€ ν–ˆλŠ”λ° λ‹€ λ‚ μ•„κ°”λ‹€,,😭 λ„ˆλ¬΄λ„ˆλ¬΄ μ†μƒν•˜μ§€λ§Œ λˆˆλ¬Όμ„ 머금고 λ‹€μ‹œ μž‘μ„±ν•œλ‹€.

1. 기본 파일

  • manage.py
    : μž₯고와 λ‹€μ–‘ν•œ λ°©λ²•μœΌλ‘œ μƒν˜Έμž‘μš©ν•œλ‹€.
    : DJANGO_SETTINGS_MODULE 을 보면 ν•΄λ‹Ή μž₯κ³  ν”„λ‘œμ νŠΈμ˜ setting.py 값을 μ•Œλ €μ£ΌλŠ” 역할을 ν•œλ‹€.

  • __init__ : 디렉토리가 python package둜 μΈμ‹λ˜μ–΄μ•Ό ν•œλ‹€κ³  μ•Œλ €μ€€λ‹€

  • WSGI : μ›Ή μ„œλ²„μ™€ μž₯κ³ λ₯Ό μ—°κ²°ν•΄μ£ΌλŠ” 역할을 ν•œλ‹€. 크게 건듀건 μ—†λ‹€.

  • urls.py : μ›Ήμ„œλ²„μ—μ„œ λ“€μ–΄ 온 μ‹ ν˜Έλ₯Ό λ°›λŠ”λ‹€. μ •κ·œν‘œν˜„μ‹μœΌλ‘œ ꡬ성이 λ˜μ–΄ 있으며 μ •κ·œ ν‘œν˜„μ‹μ— λ§žκ²Œλ” νŠΉμ •ν•œ view 을 보내쀀닀.

  • asgi.py : 비동기 톡신을 μœ„ν•œ λͺ¨λ“ˆμ΄λ‹€.

  • templete : μ‚¬μš©μžμ—κ²Œ 보여주기 μœ„ν•œ ui μž‘μ—…μ„ ν•˜λŠ” 곳이닀.
    html파일이며 이 μ•ˆμ— λ‹€μ–‘ν•œ λ‘œμ§μ„ μ²¨λΆ€ν•œλ‹€. 이 λ•Œ λ‹€μ–‘ν•œ form듀을 μž…λ ₯ν•˜λŠ”λ° form.py μ—μ„œ μ‰½κ²Œ 관리 ν•  수 μžˆλ‹€.

2. ν”„λ‘œμ νŠΈμ™€ App

  • ν”„λ‘œμ νŠΈ : ν•˜λ‚˜μ˜ μ›Ήμ‚¬μ΄νŠΈλ₯Ό λ§Œλ“ λ‹€κ³  μƒκ°ν•˜λ©΄ λœλ‹€.
    - django-admin start project tutorial

  • App : ν”„λ‘œμ νŠΈ 내에 κΈ°λŠ₯을 μΆ”κ°€ν•œλ‹€ (λ„€μ΄λ²„μ˜ λΈ”λ‘œκ·Έ, λ‰΄μŠ€) 이 앱은 λ‹€λ₯Έ ν”„λ‘œμ νŠΈμ—μ„œ ν•˜μœ„ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μœΌλ‘œ ν™œμš©ν•  수 μžˆλ‹€.
    - ./manage.py startapp community
    • commnunity μ•„λž˜ ν•˜μœ„ 앱듀이 생성이 λœλ‹€.
    • admin : κ΄€λ¦¬μž κΆŒν•œμ„ κ°€μ§€λŠ” νŽ˜μ΄μ§€μ— κ΄€λ ¨λœ λ‚΄μš©μ„ 닀룬닀.

3. μ‚¬μš© 파일

3-1. settings.py

μ€‘μš”ν•œ 파일이며, ν”„λ‘œμ νŠΈ κ΄€λ ¨ν•œ λ‹€μ–‘ν•œ 섀정듀을 가지고 μžˆλ‹€.
λ‹€μŒ ν•­λͺ©λ“€μ€ ν”„λ‘œμ νŠΈ 개발 μ‹œ ν•„μˆ˜μ‚¬ν•­!! κ·Έλž˜μ„œ μž₯κ³ κ°€ μžλ™μœΌλ‘œ λ“±λ‘ν•œ 사항을 ν•„μš”ν•˜λ‹€λ©΄ μˆ˜μ •ν•΄μ£Όλ©΄ λœλ‹€.

  • λ°μ΄ν„°λ² μ΄μŠ€ μ„€μ • : djangoλŠ” sqlite3을 기본적으둜 가지고 μžˆλ‹€. λ”°λ‘œ μ„€μΉ˜ν•  ν•„μš”λŠ” μ—†μœΌλ‚˜ μ›ν•œλ‹€λ©΄ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό λ³€κ²½ν•  수 μžˆλ‹€.

  • μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 등둝 - INSTALED_APPS : ν”„λ‘œμ νŠΈμ— ν¬ν•¨λ˜λŠ” APPλͺ¨λ‘ μ„€μ • νŒŒμΌμ— 등둝해야 ν•œλ‹€.

  • ν…œν”Œλ¦Ώ ν•­λͺ© μ„€μ • : TEMPLATES ν•­λͺ©μœΌλ‘œ 지정
    - μž₯κ³ μ—μ„œ ν…œν”Œλ¦Ώμ„ μ°ΎλŠ” μˆœμ„œλŠ” INSTALED_APPS μ„€μ • ν•­λͺ©μ— λ“±λ‘λœ μˆœμ„œλŒ€λ‘œ κ²€μƒ‰ν•œλ‹€. (보톡은 ν”„λ‘œμ νŠΈ ν…œν”Œλ¦Ώ > κ·Έ λ‹€μŒ μ•± ν…œν”Œλ¦Ώ 검색)

  • STATIC_URL : 정적 파일의 URL(css, javascript, image λ“±)을 λ‹€λ£¨λŠ” μ„€μ •νŒŒμΌμ΄λ‹€.

  • νƒ€μž„μ‘΄ 지정 : μ΅œμ΄ˆμ—λŠ” μ„Έκ³„ν‘œμ€€μ‹œ(UTC)둜 μ„€μ •. ν•œκ΅­μ‹œκ°„μœΌλ‘œ λ³€κ²½ν•΄μ€˜μ•Ό ν•œλ‹€

  • DEBUG : μ—λŸ¬ κ΄€λ ¨λœ λ‚΄μš©μ„ λ³Ό 수 있으며 개발 ν•  λ•ŒλŠ” 디버그 λͺ¨λ“œλ₯Ό true둜 두면 λœλ‹€. μ‹€μ œ 배포할 λ•ŒλŠ” false 둜 해놔야 μ‚¬μš©μžλ“€μ—κ²Œ λ…ΈμΆœμ΄ λ˜μ§€ μ•ŠλŠ”λ‹€.

  • MIDDELWARE_LASSES : request 와 response μ‚¬μ΄μ—μ„œ 인증, λ³΄μ•ˆκ³Ό κ΄€λ ¨λœ λ‚΄μš©λ“€μ„ 닀룬닀. 크게 μ‹ κ²½ μ“Έ 건 μ—†λ‹€.

    3-2. view.py

    ν”„λ‘œμ νŠΈλ₯Ό λ§Œλ“€λ©΄μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•  νŒŒμΌμ΄λ‹€.
    ν•¨μˆ˜μ˜ ν˜•νƒœλ‘œ κ΅¬ν˜„ν•˜λ©° μ• ν”Œλ¦¬μΌ€μ˜μ…˜μ˜ '둜직'을 λ„£λŠ” 곳이닀.
    λͺ¨λΈμ—μ„œ ν•„μš”ν•œ 정보λ₯Ό λ°›μ•„μ™€μ„œ(=λ°μ΄ν„°λ² μ΄μŠ€μ—μ„œ λ°›μ•„μ™€μ„œ) ν…œν”Œλ¦Ώμ— μ „λ‹¬ν•˜λŠ” 역할을 ν•œλ‹€

    ✌🏻 둜직 ꡬ성에 따라 2κ°€μ§€μ˜ 뷰둜 λ‚˜λ‰œλ‹€.
    - ν•¨μˆ˜λ‘œ μ½”λ”©ν•˜λŠ” ν•¨μˆ˜ν˜• λ·°
    - 클래슀둜 μ½”λ”©ν•˜λŠ” ν΄λž˜μŠ€ν˜• λ·°

    3-3. models.py

    ν…Œμ΄λΈ”μ„ μ •μ˜ν•˜λŠ” 파일이며,
    DB μ²˜λ¦¬λŠ” ORM 기법을 μ‚¬μš©ν•œλ‹€
    ORM을 μ‚¬μš©ν•˜λ©΄μ„œ μ›ν•˜λŠ” λͺ¨λΈμ„ μž‘μ„±ν•˜κ³  λ‹€λ£¨λŠ” κ³³
    즉, models.pyλ₯Ό 톡해 DB관리λ₯Ό ν•  수 μžˆλ‹€!πŸ˜€

  • models.CharField : κΈ€μžμˆ˜κ°€ μ œν•œλœ ν…μŠ€νŠΈ μ •μ˜, κΈ€ 제λͺ© 같이 짧은 λ¬Έμžμ—΄ 정보 μ €μž₯ν•  λ•Œ μ‚¬μš©

  • models.TextField : κΈ€μžμˆ˜κ°€ μ œν•œμ΄ μ—†λŠ” ν…μŠ€νŠΈ (λΈ”λ‘œκ·Έ μ½˜ν…μΈ μ²˜λŸΌ)

  • models.DateTimeField : λ‚ μ§œμ™€ μ‹œκ°„μ„ 의미

  • models.ForeignKey : λ‹€λ₯Έ λͺ¨λΈμ— λŒ€ν•œ 링크

    3-4. manage.py

    ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜κΈ°μœ„ν•œ λ‹€μ–‘ν•œ λͺ…λ Ήμ–΄λ₯Ό μ œκ³΅ν•˜λŠ” νŒŒμΌμ΄λ‹€.
    λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ„ μ •μ˜ν•˜λŠ” νŒŒμΌμ΄λ‹€.
    ORMκ³Ό μ—°κ΄€λ˜μ–΄ 있음!!

    πŸ₯‘ μ£Όμš” λͺ…λ Ήμ–΄ πŸ₯‘

    startapp : μ•± 생성
    runserver : μ„œλ²„ μ‹€ν–‰ (μ›Ή μ‚¬μ΄νŠΈ μ‹€ν–‰)
    createsuperuser : 초기 κ΄€λ¦¬μž 계정 생성
    makemigrationsapp : λ³€κ²½ 사항을 μ„œλ²„μ™€ 동기화 ν•˜λŠ” 쿼리 생성
    migrate : λ³€κ²½ 사항을 디비에 반영
    shell : μ‰˜μ„ 톡해 λ””λΉ„μ˜ 데이터확인
    collecstatic : 배포 μ‹œ, μ•± λ§ˆλ‹€ stactic 파일이 μ‘΄μž¬ν•˜λŠ”λ° ν•œ 곳에 λͺ¨μ•„μ£ΌλŠ” μ—­ν• 

    ex) μ‚¬μš© μ˜ˆμ‹œ
    ./manage.py runserver 0.0.0.0:8080


    πŸ§˜πŸΌβ€β™€οΈ 간단 정리 πŸ§˜πŸΌβ€β™€οΈ
    ν”„λ‘œμ νŠΈ λΌˆλŒ€ : ν”„λ‘œμ νŠΈ 및 μ•± κ°œλ°œμ— ν•„μš”ν•œ 디렉토리와 파일 생성
    λͺ¨λΈ μ½”λ”© : 타이블 κ΄€λ ¨ 사항을 개발(models.py, admin.py)
    URLconf μ½”λ”© : URL 및 λ·° 맀핑 관계λ₯Ό μ •μ˜(urls.py)
    λ·° μ½”λ”© : μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 둜직 개발(views.py)
    ν…œν”Œλ¦Ώ μ½”λ”© : ν™”λ©΄ UI개발 (templates/디렉토리 ν•˜μœ„μ˜ *html 파일)


    좜처 : μž₯κ³  κ°œλ…

profile
back-end 개발자

0개의 λŒ“κΈ€