코규리
article thumbnail

# 개인 학습용 기록글 입니다 

 

 

커뮤니티 게시판app을 만들려고 한다

게시판app/영업점App의 기반만 만든 후, 다시 유저app으로 가서 세부조정에 들어갈 것이다 (FK, PK등을 재구상해야함)

 

게시판 최종목표는 다음과 같다

1. 질문 게시판 - 답변 기능 구현

2. 정보및 자유 게시판 - 단일 게시글에 댓글 구현, 좋아요/추천 기능 구현 

3. 후기 게시판 - 영업점을 지정하여 리뷰글을 작성. 해당 영업점을 카테고리 기준으로 하여 볼 수 있게해야함

 

 

[communities > models.py]

1. board클래스 작성

from django.db import models

class Board(models.Model):
    title = models.CharField(max_length=20, null=True)
    content = models.TextField()
    writer = models.CharField(max_length=20, null=True)
  • 글 제목/내용/작성자 생성

 

 

[Communities > forms.py]

1. Form 클래스 작성

from django.forms import ModelForm
from .models import *

class BoardForm(ModelForm):
    class Meta:
        model = Board
        fields = ['title', 'content', 'writer']
  • Board모델의 title/content/writer를 필드로 할당
    Meta클래스의 작성법을 알 것 같기도 하다.

 

[Communities > views.py]

1. render 시켜주기

from django.shortcuts import render, redirect

# Create your views here.
from .forms import *
from .models import *

def board(request):
    if request.method == 'POST':
        title = request.POST['title']
        content = request.POST['content']
        writer = request.POST['writer']

        board = Board(
            title=title,
            content=content,
            writer=writer,
        )
        board.save()
        return redirect('board')
    else:
        boardForm = BoardForm
        board = Board.objects.all()
        context = {
            'boardForm': boardForm,
            'board': board,
        }
        return render(request, 'board.html', context)

 

  • post하기(if문)
    (1). front에서 title/content/writer를 입력받는다 (POST)
    (2). 해당내용을 board 객체 안에 대입시킨다
    (3). DB에 저장시킨다
  • get하기(else문)
    (1). front에서 내용을 보려 접근한다 (GET)
    (2). 해당 DB에 저장된 값을 불러온다
    (3). 작성한 html파일에 올린다

 

 

[Communities > urls.py]

from django.urls import path
from .views import *

urlpatterns = [
    path("", board, name="board"),
]

 

 

 

 

 

주말엔 해당 게시판을 보기위한 간단한 html파일(board.html)을 생성하자.


도움된 글

저녁의 개발노트 블로그의 포스팅, django 게시판 구현하기