Python Django Web Framework - 9/14. 생성기능 구현 (form)

leecw4u·2023년 10월 24일
0

Django

목록 보기
9/15
post-thumbnail

글을 작성하는 방법을 알아보자.

create 링크를 만들고 글을 작성하면 데이터를 추가하는 기능을 추가해 보자

1. 글쓰기 페이지로 이동할 수 있는 링크를 만들어보자

...
def HTMLTemplate(articleTag):
    global topics
    ol = ''
    for topic in topics:
        ol += f'<li><a href="/read/{topic["id"]}">{topic["title"]}</a></li>'
    return f'''
    <html>
        <body>
            <h1><a href="/">Django</a></h1>
            <ol> 
                {ol}
            </ol>
            {articleTag}
            <ul>
                <li><a href="/create/">create</a></li>
            </ul>
        </body>
    </html>    
    '''
...

앞으로 delete, update 기능도 추가하려고 하여 <li>로 감싸주자

2. 글을 작성할 수 있는 양식을 만들어보자

  • <input> 태그를 사용하고 placeholder에 도움말을 넣어준다. 사용한 값은 title이라는 정보로 저장한다는 것을 알려주기 위해 name에 "title"로 넣어준다.
  • <textarea> 는 본문을 작성하는 태그이다. 여러줄을 입력하는 태그이다.
  • 제출 버튼 서버로 전송하기 위해서 버튼을 만든다.
  • title 과 body를 원하는 경로로 데이터를 보내기 위해서 Form태그를 사용한다.path는 action의 속성값으로 넣어주면 된다.
...
def create(request):
    article = '''
    <form action="/create/">
        <p><input type="text" name="title" placeholder="title"></p>
        <p><textarea name="body" placeholder="body"></textarea></p>
        <p><input type="submit"></p>
    </form>    
'''
    return HttpResponse(HTMLTemplate(article))
...

3. 검사 도구를 켜서 데이터를 보내보자

  • url 뒤에 ? 가 따라오는걸 볼 수 있다.
  • 통신한 내역을 클릭해 보면 request method가 get인걸 볼 수 있다. -> 다음시간에 상세히 다뤄보자!

profile
초보 개발자의 끄적끄적 스터디 블로그

0개의 댓글

관련 채용 정보