[Python] 웹프로그래밍(게시판)

21. 웹 프로그래밍(게시판)

 

21.1 주요 기능

21.1.1 글목록, 글쓰기, 수정, 삭제

21.1.2 검색 기능

21.1.3 페이지 나누기

21.1.4 댓글 쓰기, 댓글 목록

21.1.5 파일 업로드, 다운로드

 

 

21.2 Django와 mysql 연동

21.2.1 mysql 스크립트

 

21.2.2 mysql 패키지 설치

pip install pymysql

 

 

21.2.3 settings.py 설정

import pymysql

pymysql.install_as_MySQLdb()
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'pyweb',            # DB명
        'USER': 'java',             # 데이터베이스 계정
        'PASSWORD': 'java1234',     # 계정 비밀번호
        'HOST': 'localhost',        # DB서버 주소(IP)
        'PORT': '3306'              # 데이터베이스 포트(보통은 3306)
    }
}

 

 

21.3 Django 게시판 만들기 실습

21.3.1 프로젝트 만들기

[New] - [Other] - [PyDev] - [PyDev Django Project]

프로젝트 이름: pyweb_board

 

pyweb_board 디렉토리가 2개 만들어진다.

D:\work\pyweb_board

D:\work\pyweb_board\pyweb_board - python 웹프로젝트의 설정 디렉토리

 

21.3.2 기본 테이블 생성

d:
cd work/pyweb_board
python manage.py migrate

 

21.3.3 슈퍼 유저 생성

cd work/pyweb_board
python manage.py createsuperuser

 

아이디와 비밀번호만 입력, 이메일은 생략 가능

비밀번호는 8자 이상이어야 하고 영문자 + 숫자로 구성해야 함

username: admin

password: admin1234

 

21.3.4 애플리케이션 생성

python manage.py startapp board

 

board 관련 디렉토리가 만들어진다.

이클립스에서 F5를 눌러 새로고침

 

21.3.5 settings.py

 

 

테이블을 새로 만들기 위해 models.py와 admin.py 2개의 파일을 수정해야 함

  • models.py: 테이블에 대한 모델 클래스 정의
  • admin.py: models.py에 등록한 테이블이 Admin 사이트에서도 보이도록 처리

테이블을 하나의 클래스로 정의하고 테이블의 컬럼은 클래스의 변수로 매핑

테이블 클래스는 django.db.models.Model 클래스를 상속받아 정의

변수 자료형도 장고에서 미리 정의된 자료형을 사용한다.

 

 

 

 

21.3.7 board/admin.py

Admin 사이트에 테이블 반영

from django.contrib import admin

from board.models import Board

 

# Register your models here.

class BoardAdmin(admin.ModelAdmin):

list_display=("writer", "title", "content")

 

admin.site.register(Board, BoardAdmin)

 

21.3.8 데이터베이스 변경 사항 반영

지금까지 코드로 작업한 모델 클래스들을 DB에 반영

cd work/pyweb_board

 

python manage.py makemigrations

python manage.py migrate

 

21.3.9 웹서버 구동

python manage.py runserver localhost:80

 

웹브라우저에서 http://localhost/admin

 

21.3.10 pyweb_board/urls.py

from django.conritb import admin

from django.urls import path

from django.conf import settings

from django.conf.urls import url, include

from board import views

 

urlpatterns = [

# 관리자용 사이트

path('admin', admin.site.urls),

# 게시판 관련 url

path('', views.list),

path('write', views.write),

path('insert', views.insert),

path('detail', views.detail),

path('update', views.update),

path('delete', views.delete),

path('download', views.download),

path('reply_insert', views.reply_insert),

]

 
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
url(r'^__debug__/', include(debug_toolbar.urls))
]

 

댓글(0)

Designed by JB FACTORY