[PHP/DJango] 02 자세히(detail) / 삭제(delete)
- 서버 접속
- Putty 접속
- IP : ir.jj.ac.kr
- Port : 10022
- ID/PW는 개인별로 알려줬음
- FTP 접속
- IP : ir.jj.ac.kr
- Port : 21
- ID/PW는 개인별로 알려줬음
- Notepad++의 플러그인 중 NPPFtp를 사용하여 접속하면 편함
- phpmyadmin 접속
- http://ir.jj.ac.kr/phpmyadmin
- ID/PW는 개인별로 알려줬음
- Putty 접속
- phpmyadmin을 이용하여 테이블생성
- ID/PW는 개인별로 알려줬음
- 테이블 이름 : pd_board
- 필드
- id : 자동증가 번호, 정수, 기본키
- subj : 제목
- cont : 내용
- hit : 읽은 횟수
- wdate : 저장 날짜/시간 자동저장
- PHP 프로그래밍 : public_html/glass 폴더에서
- index.php 수정
- 나타나는 목록을 <a></a>를 사용하여 하이퍼링크 추가
- detail.php 생성
- index.php에서 1개의 목록을 클릭하면 detail.php?id=1과 같이 호출
- 테이블에서 id=1인 레코드의 id, subj, cont, hit, wdate를 읽어서 출력
- detail.php 수정
- <a>삭제</a> 하이퍼링크 추가
- <a>수정</a> 하이퍼링크 추가
- delete.php 생성
- detail.php에서 [삭제] 클릭하면 delete.php?id=1과 같이 호출
- 테이블에서 id=1인 레코드 삭제
- index.php 수정
- Django 프로그래밍
- 폴더 생성 : 홈디렉터리에 DJango 폴더 생성
- 기본 실행
- cd glass
- python3 manage.py migrate
- python3 manage.py runserver 0.0.0.0:1234 <– 1234대신 보인 HP 뒤 4자리숫자 사용
- 크롬으로 http://ir.jj.ac.kr:1234
- 템플릿(index.html) 수정
- glass/board/templates/board/index.html 수정
- 나타나는 목록을 <a></a>를 사용하여 하이퍼링크 추가
1234567891011121314{% if latest_board_list %}{% for board in latest_board_list %}{{ board.id }}<a href = "{% url 'board:detail' board.id %}">{{ board.subj }}</a>{{ board.cont }}{{ board.hit }}{{ board.wdate }}<br>{% endfor %}{% else %}empty{% endif %}
- 자세히(detail) 추가
- 뷰 수정 : glass/board/views.py 수정
123456789101112131415from django.shortcuts import render, get_object_or_404, redirect# Create your views here.from board.models import Boarddef index(request):latest_board_list = Board.objects.all().order_by('-wdate')[:5]context = {'latest_board_list' : latest_board_list}return render(request, 'board/index.html', context)def detail(request, board_id):board = get_object_or_404(Board, pk=board_id)context = {'board':board}return render(request, 'board/detail.html', context) - 템플릿 추가 : glass/board/templates/board/detail.html 생성
1234567번호 : {{ board.id }} <br>제목 : {{ board.subj }} <br>내용 : {{ board.cont }} <br>히트 : {{ board.hit }} <br>날짜 : {{ board.wdate }} <br><a href="{% url 'board:delete' board.id %}"> 삭제 </a> - URL 추가 : glass/board/urls.py 수정
12345678from django.urls import pathfrom board import viewsapp_name='board'urlpatterns = [path('', views.index, name='index'),path('<int:board_id>/', views.detail, name='detail'),] - glass/mysite/urls.py 수정은 안해도 됨
- 결과 확인 : 크롬으로 http://ir.jj.ac.kr:1234/board
- 뷰 수정 : glass/board/views.py 수정
- 삭제(delete) 추가
- 뷰 수정 : glass/board/views.py 수정
1234567891011121314151617181920from django.shortcuts import render, get_object_or_404, redirect# Create your views here.from board.models import Boarddef index(request):latest_board_list = Board.objects.all().order_by('-wdate')[:5]context = {'latest_board_list' : latest_board_list}return render(request, 'board/index.html', context)def detail(request, board_id):board = get_object_or_404(Board, pk=board_id)context = {'board':board}return render(request, 'board/detail.html', context)def delete(request, board_id):board = get_object_or_404(Board, pk=board_id)board.delete()return redirect('/board') - 템플릿은 없음
- URL 추가 : glass/board/urls.py 수정
123456789from django.urls import pathfrom board import viewsapp_name='board'urlpatterns = [path('', views.index, name='index'),path('<int:board_id>/', views.detail, name='detail'),path('<int:board_id>/delete', views.delete, name='delete'),] - glass/mysite/urls.py 수정은 안해도 됨
- 결과 확인 : 크롬으로 http://ir.jj.ac.kr:1234/board
- 뷰 수정 : glass/board/views.py 수정