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

๐Ÿ’ก์›น ํ”„๋กœ์ ํŠธ/(๋ฐฑ์—”๋“œ)Django - ํ”„๋กœ์ ํŠธ01

(8)
ํ”„๋กœ์ ํŠธ01. Cloud ์„œ๋ฒ„(PythonAnywhere)๋กœ Django ๋ฐฐํฌํ•˜๊ธฐ ์›น์‚ฌ์ดํŠธ๋ฅผ ๊ฐœ๋ฐœํ•œ ํ›„์— ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์˜คํ”ˆํ•˜๋ ค๋ฉด, ์šด์˜ ์„œ๋ฒ„๋ฅผ ์ค€๋น„ํ•˜๊ณ  ๊ฐœ๋ฐœํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฃผ๋ณ€์— ์„œ๋ฒ„ H/W๊ฐ€ ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•˜๋ฉด ๋˜๊ณ , ๋งŒ์ผ ์—†๋‹ค๋ฉด ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„ ์ค‘ ๋ฌด๋ฃŒ์ด๋ฉด์„œ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ์‰ฌ์šด PythonAnywhere๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. (ํด๋ผ์šฐ๋“œ ์„œ๋ฒ„์—๋Š” AWS, Digital Ocean, Heroku, PythonAnywhere ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.) 1. PythonAnywhere์— ๋ฌด๋ฃŒ(Beginner : Free!)๊ณ„์ • ๊ฐ€์ž… Username์œผ๋กœ ๋„๋ฉ”์ธ๋ช…์ด ๊ฒฐ์ •๋˜๋ฏ€๋กœ ์œ ์˜!! ๊ณ„์ • ์ƒ์„ฑ ์ ˆ์ฐจ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์€ Dashboardํ™”๋ฉด์ด ๋‚˜ํƒ€๋‚œ๋‹ค. 2. Djangoํ”„๋กœ์ ํŠธ์˜ settings.pyํŒŒ์ผ ์„ค์ • ๋ณ€๊ฒฝ (์œ„์˜ ๋‚ด์šฉ ๋™์ผ) AL..
ํ”„๋กœ์ ํŠธ01. Django authentication๋ฅผ ํ™œ์šฉํ•œ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ ๊ตฌํ˜„ Django authentication๋ฅผ ์ด์šฉํ•˜๋ฉด form์€ ์žฅ๊ณ ์—์„œ ์ œ๊ณตํ•ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ์ฝ”๋“œ๋Š” https://www.programcreek.com/python/์ฐธ๊ณ  github - https://github.com/seunghyun1003/web1 ๋ชฉ์ฐจ 1. urls, view, template์ž‘์—… 2. ๊ฒฐ๊ณผ 1. urls, view, template์ž‘์—… 2. ๋กœ๊ทธ์ธ ํ›„ ํ™ˆ์œผ๋กœ ์ด๋™ํ•˜๋Š” ์„ค์ • 3. ๊ฒฐ๊ณผ urls, view, template์ž‘์—… 1. urls, view, template์ž‘์—… urls ์ž‘์—… : simp_web/urls.py์— ์•„๋ž˜ ์ฝ”๋“œ ์ถ”๊ฐ€ path('signup', views.signup, name='signup'), #์ถ”..
ํ”„๋กœ์ ํŠธ01. bootstrap ์ ์šฉํ•˜๊ธฐ Bootstrap์„ ์ ์šฉํ•œ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด, ๊ธฐ์กด์— ๋งŒ๋“ค์–ด ๋†“์€ memo์›น์‚ฌ์ดํŠธ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‹ค์Œ ์„ธ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. 1, ๊ธ€ ์“ฐ๊ธฐ ๊ธฐ๋Šฅ 2. ๊ธ€ ๋ชฉ๋ก ๋ณด๊ธฐ ๊ธฐ๋Šฅ 3. ๊ธ€ ๋””ํ…Œ์ผ ๋ณด๊ธฐ ๊ธฐ๋Šฅ +) ์ถ”๊ฐ€๋กœ ๊ธฐ์กด์˜ memo์›น์‚ฌ์ดํŠธ๋กœ ๊ฐ€๋Š” url๋„ ๋ฉ”๋‰ด์— ์ถ”๊ฐ€ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชฉ์ฐจ 1. bootstrap ์ ์šฉ 2. ๋ธ”๋กœ๊ทธ์— ๊ธ€ ์ž‘์„ฑ 3. admin์‚ฌ์ดํŠธ์— category, post์ƒ์„ฑ + ๊ธ€ ์ถ”๊ฐ€ํ•˜๊ธฐ 4. admin์‚ฌ์ดํŠธ์—์„œ ์ž‘์„ฑํ•œ ๊ธ€ ๋ธ”๋กœ๊ทธ์— ๋‚˜ํƒ€๋‚ด๊ธฐ 5. ๊ธ€ ์ž‘์„ฑํ•˜๋Š” ํผ('widget_tweaks'์ด์šฉ) ๋งŒ๋“ค๊ธฐ + ๋กœ๊ทธ์ธ PostcreateVIew์ƒ์„ฑ 6. ๊ฒฐ๊ณผ urls.py ๋ถ„๋ฆฌ : mysite/urls.py์— simp_web/urls.py ์—ฐ๊ฒฐ 1) mysite/urls.py from djan..
ํ”„๋กœ์ ํŠธ01. ํ•จ์ˆ˜ํ˜• ๋ทฐ์—์„œ ํด๋ž˜์Šคํ˜• ๋ทฐ๋กœ ๋ณ€๊ฒฝ & detail, update, delete๊ตฌํ˜„ ํ•จ์ˆ˜ํ˜• view๋ฅผ ํด๋ž˜์Šคํ˜• view(generic view ์ƒ์†)๋กœ ๋ณ€๊ฒฝํ•ด๋ณด๊ณ , memolistํ™”๋ฉด์—์„œ detail, update, delete๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Detail๊ธฐ๋Šฅ : memolist์—์„œ ๊ธ€์˜ ์ œ๋ชฉ ํด๋ฆญํ•˜๋ฉด ๊ธ€์˜ title, content ์ถœ๋ ฅ Update๊ธฐ๋Šฅ : memolist์—์„œ ๋ชจ๋“ ๊ธ€ ์˜†์— updateํด๋ฆญํ•˜๋ฉด ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” form ์ƒ์„ฑ Delete๊ธฐ๋Šฅ : memolist์—์„œ ๋ชจ๋“ ๊ธ€ ์˜†์— deleteํด๋ฆญํ•˜๋ฉด ์‚ญ์ œํ•˜๋Š” confirm_deleteํŽ˜์ด์ง€ ๋‚˜ํƒ€๋‚˜๊ณ  deleteํด๋ฆญํ•˜๋ฉด ์‚ญ์ œ ๋ชฉ์ฐจ 1. views.py ๋ณ€๊ฒฝ, ์ œ๋„ค๋ฆญ ๋ทฐ ์ƒ์†๋ฐ›๊ธฐ 2. urls.py ๋ณ€๊ฒฝ 3. template ๋ณ€๊ฒฝ 4. ๊ฒฐ๊ณผ 1. views.py ๋ณ€๊ฒฝ, ์ œ๋„ค๋ฆญ ๋ทฐ ์ƒ์†๋ฐ›๊ธฐ FBV CBV create Crea..
ํด๋ž˜์Šคํ˜• view ํŠน์ • DB table์˜ ๋ชจ๋“  record๋ฅผ ๊ฐ€์ ธ์™€์„œ List๋กœ ํ‘œ์‹œ(๊ฒŒ์‹œํŒ ๊ธ€ ๋ชฉ๋ก ์ „์ฒด) ๋˜๋Š” Detail ๋‚ด์šฉ ํ‘œ์‹œ (๊ฒŒ์‹œํŒ์˜ ํŠน์ • ๊ธ€ ์ƒ์„ธ ๋‚ด์šฉ) ๋“ฑ์„ ํ•˜๋ ค๋ฉด ํด๋ž˜์Šคํ˜• view๋ฅผ ํ™œ์šฉํ•˜๋ฉด ๋” ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‹ค์Œ ๊ธ€[Django] - detail, update, delete๊ตฌํ˜„ ํ•ด๋ณด๊ธฐ ์ „์— ํด๋ž˜์Šคํ˜• view์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชฉ์ฐจ 1. ํด๋ž˜์Šคํ˜• view ์ž‘์„ฑ ๋ฐฉ๋ฒ• 2. ํด๋ž˜์Šคํ˜• ๋ทฐ์˜ ์žฅ์  3. ์ œ๋„ค๋ฆญ ๋ทฐ 4. ํด๋ž˜์Šคํ˜• ๋ทฐ์—์„œ ํผ ์ฒ˜๋ฆฌํ•˜๊ธฐ 1. ํด๋ž˜์Šคํ˜• view ์ž‘์„ฑ ๋ฐฉ๋ฒ• 1-1) URL conf as.view() : ํด๋ž˜์Šค์˜ instance๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ทธ instance์˜ dispatch()๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ง„์ž… ๋ฉ”์†Œ๋“œ. dispatch() : HTTP ๋ฉ”์†Œ๋“œ ๊ฒ€์‚ฌํ•˜๊ณ ..
ํ”„๋กœ์ ํŠธ01. admin ์‚ฌ์ดํŠธ์— model class ๋“ฑ๋กํ•˜๊ธฐ ๋ชฉ์ฐจ 1. admin์‚ฌ์ดํŠธ์— modelํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ์ด์œ ๋Š”? 2. Model Admin 3๊ฐ€์ง€ ๋“ฑ๋ก๋ฒ• 3. admin ์‚ฌ์ดํŠธ์˜ CRUD๊ธฐ๋Šฅ 1. admin์‚ฌ์ดํŠธ์— modelํด๋ž˜์Šค๋ฅผ ๋“ฑ๋กํ•˜๋Š” ์ด์œ ๋Š”? ๋ชจ๋ธ ํด๋ž˜์Šค๋งŒ ๋“ฑ๋กํ•˜๋ฉด, CRUD ์›น ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ admin์—์„œ ์ œ๊ณต ํŠน์ • ๋ชจ๋ธํด๋ž˜์Šค๋ฅผ admin์— ๋“ฑ๋กํ•˜๋ฉด, ํ•ด๋‹น ๋ชจ๋ธ์„ GUI ํ™˜๊ฒฝ์—์„œ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ admin.py ํŒŒ์ผ ๋‚ด์— ์›ํ•˜๋Š” ๋ชจ๋ธ์„ import, register, unregister ์ง„ํ–‰ admin.site.unregister ๊ธฐ๋Šฅ์€ ๊ธฐ๋ณธ ์œ ์ € ๋ชจ๋ธ์˜ ๋“ฑ๋ก์„ ํ•ด์ œํ•˜๋Š” ๋“ฑ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉ 2. Model Admin 3๊ฐ€์ง€ ๋“ฑ๋ก๋ฒ• ๋ฐฉ๋ฒ•โ‘  - ๊ธฐ๋ณธ ModelAdmin์œผ๋กœ ๋“ฑ๋ก. from django.contrib import admin from .mod..
ํ”„๋กœ์ ํŠธ01. base.html์„ค์ • & modelform ์ƒ์„ฑ ์›น์‚ฌ์ดํŠธ์˜ ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ base.html๋กœ ๋งŒ๋“ค์–ด ์ƒ์†ํ•ด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ ์ €๋ฒˆ์— ์ƒ์„ฑํ–ˆ๋˜ form์„ modelform์œผ๋กœ ๋ณ€๊ฒฝํ•˜๊ณ , post๋กœ ์ฒ˜๋ฆฌํ•ด memolist์— ๋ฆฌ์ŠคํŠธ ํ˜•ํƒœ๋กœ ์ €์žฅํ•ด ์ถœ๋ ฅํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. +) admin์‚ฌ์ดํŠธ์— class Entries๋“ฑ๋กํ•˜๊ธฐ ์ˆœ์„œ 1. base.html ์ž‘์„ฑ ๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ ์›น์‚ฌ์ดํŠธ Home {% block content %} {% endblock %} 2. base.html ์ƒ์†๋ฐ›๋Š” htmlํŒŒ์ผ ์ž‘์„ฑ ex) base.html์„ ์ƒ์†๋ฐ›๋Š” page.html {% extends 'simp_web/base.html' %} {% block content %} ๊ธ€ ๊ณ„์ •๊ด€๋ฆฌ {% endblock %} Form class๋ฅผ ์ƒ์†ํ•œ๋‹ค. ์ง€์ •๋œ model๋กœ๋ถ€ํ„ฐ fields์ •๋ณด๋ฅผ ์ฝ์–ด๋“ค์—ฌ..
ํ”„๋กœ์ ํŠธ01. ๋ฉ”๋ชจ ์›น ๊ธฐํšํ•˜๊ธฐ & ๊ธ€ ์ƒ์„ฑ ํผ ๋งŒ๋“ค๊ธฐ ๊ฐ„๋‹จํ•œ ๋ฉ”๋ชจ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์›น์„ ๊ธฐํšํ•ด๋ณด๊ณ , ๊ธ€์„ ์ƒ์„ฑํ•˜๋Š” ํผ์„ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ๊ณผ์ • ๊ธ€ ์“ฐ๊ธฐ, ์ˆ˜์ •, ์‚ญ์ œ ๊ธ€ ๋ชฉ๋ก ๋ณด๊ธฐ ๋กœ๊ทธ์ธ, ๋กœ๊ทธ์•„์›ƒ, ํšŒ์›๊ฐ€์ž… ์›น ์‚ฌ์ดํŠธ ๊ฐ„๋‹จ ํ๋ฆ„๋„ URLconf ๊ธ€ ๊ด€๋ จ /simp_web/page /simp_web/page/memo /simp_web/page/memo /simp_web/page/memo /simp_web/page/memo ๊ธฐํƒ€ ๊ณ„์ •๊ด€๋ฆฌ /simp_web/page/memo ํšŒ์›๊ฐ€์ž… /simp_web/page/memo ๋กœ๊ทธ์ธ /simp_web/page/memo (mysite\)urls.py ํŒŒ์ผ ์„ค์ • from django.contrib import admin from django.urls import path from simp_web import views #..