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

์žฅ๊ณ 4

[Django note] #5 ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” ์žฅ๊ณ  ๋…ธํŠธ(์ธ๋„ค์ผ ๊ตฌํ˜„) ์ธ๋„ค์ผ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด media๋ฅผ ์˜ฌ๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ๋จผ์ € ๋งŒ๋“ค์–ด์ฃผ์ž. ๋ณต์Šต ๊ฒธ media ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ • 1. views.py์— ๋ชจ๋ธ์„ ๋งŒ๋“ค์ž #views.py class Pictures(models.Model): text=models.TextField() img=models.ImageField(upload_to='blogimg') 2. settings.py์—์„œ ๋ฏธ๋””์–ด url, root ์„ค์ • #settings.py MEIDA_URL = 'media' MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 3. urls.py์— settings์™€ static ์ž„ํฌํŠธํ•˜๊ณ , ๊ฒฝ๋กœ ๋ณ‘๋ ฌ์ ์œผ๋กœ ์ถ”๊ฐ€ #urls.py from django.conf import settings from django.. 2020. 7. 22.
[Django ์—๋Ÿฌ] NOT NULL constraint failed: blogapp_blog.pub_date ์›์ธ: views.py์—์„œ newblog(์ƒˆ๋กœ์šด ๊ธ€์„์“ฐ๋Š” ํ•จ์ˆ˜)๋ฅผ ์ž˜ ๋ชป ์ •์˜ํ•จ. ์—๋Ÿฌ ๋‚œ ์ฝ”๋“œ #views.py ์—๋Ÿฌ ๋‚œ ์ฝ”๋“œ def newblog(request): if request.method=='POST': blog=BlogPost(request.POST) if blog.is_valid(): blog.save(commit=False) #ํ‹€๋ฆฐ ๋ถ€๋ถ„ blog.pub_date=timezone.now() blog.save() return redirect('home') else: blog=BlogPost() return render(request, 'new.html', {'blog':blog} ์ˆ˜์ •ํ•œ ์ฝ”๋“œ #views.py ์ˆ˜์ •ํ•œ ์ฝ”๋“œ def newblog(request): if request.metho.. 2020. 7. 17.
[Django note] #2 ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” ์žฅ๊ณ  ๋…ธํŠธ (ํ…œํ”Œ๋ฆฟ ์ƒ์†, url ๊ณ„์ธต์  ๊ด€๋ฆฌ) ํ…œํ”Œ๋ฆฟ ์ƒ์† 1. ํ”„๋กœ์ ํŠธ ํด๋” ์•ˆ์— templatesํด๋”๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ์•ˆ์— base.html ๋งŒ๋“ค๊ธฐ ์ค‘๋ณต๋˜๋Š” ๋‚ด์šฉ๋„ ์ฑ„์›Œ๋„ฃ๊ธฐ 2. settings.py์— base.html์˜ ์œ„์น˜๋ฅผ ์•Œ๋ ค์ฃผ๊ธฐ TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['ํ”„๋กœ์ ํŠธ ์ด๋ฆ„/templates'], 'APP_DIRS': True, ... 3. base.html์— ๋‚ด์šฉ์ด ๋“ค์–ด๊ฐˆ ๋ถ€๋ถ„์„ ์•Œ๋ ค์ฃผ๊ธฐ {%block contents%} {%endblock%} #block contents์—์„œ 'contents'๋Š” ๋ฐ”๊ฟ”์“ธ ์ˆ˜ ์žˆ๋‹ค. (title, sidebar ๋“ฑ๋“ฑ..) 4. ๋‚ด์šฉ์— ํ•ด๋‹นํ•˜๋Š” html๋กœ ๊ฐ€์„œ {%extends 'bas.. 2020. 7. 16.
[Django note] #1 ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ๋งŒ๋“œ๋Š” ์žฅ๊ณ  ๋…ธํŠธ(static๊ณผ media) static 1. ์•ฑ ํด๋” ์•ˆ์— static ํด๋” ๋งŒ๋“ค๊ธฐ 2. settings.py์— staticํŒŒ์ผ์ด ์ง€๊ธˆ ์–ด๋””์— ์žˆ๋Š”์ง€, ์–ด๋””๋กœ ๋ชจ์„์ง€ ์•Œ๋ ค์ฃผ๊ธฐ #settings.py STATICFILES=[ os.path.join(BASE_DIR, '์•ฑ ์ด๋ฆ„', 'static') ] #ํ˜„์žฌ staticํŒŒ์ผ๋“ค์ด ์–ด๋””์— ์žˆ๋Š”์ง€ STATIC_ROOT=os.path.join(BASE_DIR, 'static') #static ํŒŒ์ผ์„ ์–ด๋””๋กœ ๋ชจ์„์ง€ 3. staticํŒŒ์ผ๋“ค์„ ๋ชจ์•„์ฃผ๊ธฐ ๋ช…๋ น์–ด: python manage.py collectstatic 4. html๋ฌธ์„œ์—์„œ static ํŒŒ์ผ ์‚ฌ์šฉํ•˜๊ธฐ ๋งจ ์œ„์— {%load static%} ์จ์ฃผ๊ธฐ #๊ถ๊ธˆํ•œ๊ฑฐ : ํ…œํ”Œ๋ฆฟ ํƒœ๊ทธ, ํ…œํ”Œ๋ฆฟ ๋ณ€์ˆ˜ ์ฐจ์ด์ ... Media *pip ํŒจํ‚ค์ง€ pillo.. 2020. 7. 14.