WIL(5주차)

김규현·2022년 10월 5일
0

5주차 에서는 django의 실무 기초를 학습하면서 클론 코딩 팀 프로젝트로 병행해서 진행했다.

우선 django 복습을 마치지 못했지만 django에서 기본적으로 제공해주는 user 모델을 커스텀해서 db에 저장하고, url과 views파일에서 회원가입, 로그인 기능을 구현하여 django template으로 html과 상호작용을 하는 것 까지는 조금 익숙해졌다.

팀프로젝트는 인스타그램 클론 코딩을 팀 만의 색깔을 입혀 sns를 만드는 방식으로 진행하기로 했다.
구현할 기능은 회원가입, 로그인, 메인페이지(전체 게시글), 글(작성, 수정, 삭제)과 댓글, 태그한 게시물 모아보기, 내 프로필 페이지, 다른 사람 프로필 페이지, 회원정보 수정 등이다.

팀원 모두 프론트/백엔드 같이 경험할 수 있도록 각각의 페이지를 만들고 협업해서 진행하기로 했다.
내가 맡았던 부분은 모든 게시물이 보여지는 메인 페이지이고 db에 저장되어 있는 게시글을 django template으로 컬럼에 붙여넣고 댓글과 글 삭제 기능을 추가하는 것이다.

현재까지 작업한 결과물은 아래와 같다.

url.py

urlpatterns = [
      path('main/',views.main, name='main'), #메인 페이지 접속
]

views.py

def home(request):
    user = request.user.is_authenticated
    # user가 login 상태인지 아닌지 판별 할 수 있는 djanogo 기능
    if user:
        return redirect('/main')
    else:
        return redirect('/login')

def main(request):
    if request.method == 'GET':  # 요청하는 방식이 GET 방식인지 확인하기
        user = request.user.is_authenticated  # 사용자가 로그인이 되어 있는지 확인하기
        if user:  # 로그인 한 사용자라면
            all_tweet = TweetModel.objects.all().order_by('-created_at')
            return render(request, 'user/main_page.html', {'tweet': all_tweet})
        else:  # 로그인이 되어 있지 않다면
            return redirect('/signin')
            
    elif request.method == 'POST':  # main_profile 에서 dict 형태로 가져옴
        username = request.username  # 현재 로그인 한 사용자를 불러오기
        my_tweet = TweetModel()  # 글쓰기 모델 가져오기
        my_tweet.write_no = username  # 모델에 사용자 저장
        my_tweet.nickname = request.POST.get('')
        my_tweet.content = request.POST.get('my-content', '')  # 모델에 글 저장
        my_tweet.tweet_img = request.POST.get('tweet_img','') # 트윗에 길
        my_tweet.save()
        return redirect('/main')
profile
웹개발 회고록

0개의 댓글