[파이썬-6] (CRUD) 글쓰기,수정,삭제,상세보기 구현

2022. 8. 8. 22:30· 기존(310)/🏀Pyton
목차
  1. # 리스트페이지 출력 (list.html)
  2. views
  3. templates/list.html
  4. # 작성페이지 출력 (list.html)
  5. **********   {% csrf_token %}        꼭 작성  // 정상적인 경로인지 확인하는 것
  6. viesw.py
  7. templates/write.html
  8. submit 으로 전송하면
  9. templates/detail.html
  10. #address/views

 

 

 

# 리스트페이지 출력 (list.html)

views

def home(request):
    # select * from addresss_address order by name;
    items = Address.objects.order_by('name')  # Adrress 클래스 . object 전체 셀렉트문
    return render(request,'address/list.html', \
                  {'items':items,'address_count':len(items)}) ## {변수명,값} {key,value}

 

templates/list.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h2>주소록</h2>
<a href="/">Home</a>
<a href="write">등록</a>
등록된 주소 : {{ address_count }}
<table border="1">
    <tr>
        <Td>번호</Td>
        <Td>이름</Td>
         <Td>전화</Td>
         <Td>이메일</Td>
         <Td>주소</Td>

    </tr>
   {% for row in items %}
    <tr>
        <td>{{row.idx}}</td>
        <td><a href="detail?idx={{ row.idx }}"> {{ row.name }} </a></td>
        <td>{{ row.tel }}]</td>
        <td>{{ row.email }}</td>
        <Td>{{ row.address }}</Td>
    </tr>
    {% endfor %}
</table>
</body>
</html>

 

 

# 작성페이지 출력 (list.html)

 

**********   {% csrf_token %}        꼭 작성  // 정상적인 경로인지 확인하는 것

 

viesw.py

def write(request):
    return render(request,'address/write.html')

 

templates/write.html

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<H2>주소록</H2>
<form method="post" action="insert">
    {% csrf_token %}
     이름 : <input type="text" name="name"><br>
     전화 : <input type="text" name="tel"><br>
     메일 : <input type="text" name="email"><br>
     주소 : <input type="text" name="address"><br>
     이름 : <input type="submit" value="확인"><br>

</form>
</body>
</html>

 

 

submit 으로 전송하면

views.py 함수 실행 ( insert ) 

def insert(request): ## 폼에 입력한 값들이 request 에 저장
    # #post방식으로 값전달 POST 방식으로 전달
    # request.GET['변수명'] GET 방식으로 전달된 데이터
    # Address= > 클래스임
    addr=Address(name=request.POST['name'],tel=request.POST['tel'],\
                 email=request.POST['email'],address=request.POST['address'])
    addr.save() # 내부적으로 insert 쿼리 실행 DB 레코드저장
    return redirect('/address')  # address 주소로 가기

 

 

templates/detail.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        function update(){
            document.form1.action="update";
            document.form1.submit();
        }

        function del(){
            document.form1.action="delete";
            document.form1.submit();
        }
    </script>

</head>
<body>
<H2>주소록 편집</H2>
<form method="post" name="form1">
    {% csrf_token %}
    <table border="1">

        <Tr>
            <td>이름</td>
            <td><input name="name" value="{{addr.name}}"></td>
        </Tr>
           <Tr>
            <td>전화</td>
            <td><input name="tel" value="{{addr.tel}}"></td>
        </Tr>
           <Tr>
            <td>이메일</td>
            <td><input name="email" value="{{addr.email}}"></td>
        </Tr>
           <Tr>
            <td>주소</td>
            <td><input name="address" value="{{addr.address}}"></td>
        </Tr>
<tr>
    <td colspan="2" align="center">
        <input type="hidden" name="idx" value="{{ addr.idx }}">
        <input type="button" value="수정" onclick="update()">
        <input type="button" value="삭제" onclick="del()">
    </td>
</tr>

    </table>


</form>
</body>
</html>

 

 

#address/views

def detail(request):
    id=request.GET['idx']
    addr = Address.objects.get(idx=id)
    return render(request,'address/detail.html',{'addr':addr})

def update(request):
    id=request.POST['idx']
    addr=Address(idx=id, name=request.POST['name'] ,tel=request.POST['tel'],
                 email=request.POST['email'],address=request.POST['address'])
    addr.save()
    return redirect('/address')


def delete(request):
    id=request.POST['idx']
    Address.objects.get(idx=id).delete()
    return redirect('/address')
저작자표시 (새창열림)

'기존 > 🏀Pyton' 카테고리의 다른 글

[파이썬-7] 메모장 구현하기  (0) 2022.08.08
[파이썬-5] 파이참 urls 패턴  (0) 2022.08.08
[파이썬-4] 파이참 웹서버 구동 ( 웹페이지서버실행 )  (0) 2022.08.08
[파이썬-3] 파이참 애플리케이션생성,테이블생성,SQLITE 생성  (0) 2022.08.08
[파이썬-2] 파이참 설치하기  (0) 2022.08.06
  1. # 리스트페이지 출력 (list.html)
  2. views
  3. templates/list.html
  4. # 작성페이지 출력 (list.html)
  5. **********   {% csrf_token %}        꼭 작성  // 정상적인 경로인지 확인하는 것
  6. viesw.py
  7. templates/write.html
  8. submit 으로 전송하면
  9. templates/detail.html
  10. #address/views
'기존(310)/🏀Pyton' 카테고리의 다른 글
  • [파이썬-7] 메모장 구현하기
  • [파이썬-5] 파이참 urls 패턴
  • [파이썬-4] 파이참 웹서버 구동 ( 웹페이지서버실행 )
  • [파이썬-3] 파이참 애플리케이션생성,테이블생성,SQLITE 생성
조각남자
조각남자
프로그래밍 기술 및 저장소
조각남자
조각남자
조각남자
전체
오늘
어제
  • 전체 보기
    • Java
      • Spring
    • 기존
      • 🏀Jsp
      • 🏀Spring
      • 🏀Pom.xml
      • 🏀SpringBoot
      • 🏀JavaExcption
      • 🏀JavaDB
      • 🏀SpringBootCloneWebSite
      • 🏀SptringDependency
      • 🏀JpaEnvorinoment
      • 🏀Thymeleaf
      • 🏀Node
      • 🏀Pyton
      • 🏀DataBase
      • 🏀JavaScript
      • 🏀Android
      • 🏀JPA
      • 🏀Flutter
      • 🐸Utils
      • 🎫 Batch
      • 🎞️JenKins
      • 🎈Python
      • 🎗️AWS
      • 🦠Vue
      • 🐳React
      • 🖲️kafka
      • Next.js

공지사항

  • 공지사항

인기 글

태그

  • D

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
조각남자
[파이썬-6] (CRUD) 글쓰기,수정,삭제,상세보기 구현
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.