반응형
Postgresql 소개 :
관계형 데이터베이스 관리 시스템 (RDBMS) 대용량 데이터의 처리,다중 사용자 환경에서 안정적으로 작동하며 다양한 기능 제공
1. Postgresql 설치 및 세팅 :
I : 나의 가상환경 venv에서 psql 설치
sudo apt update
sudo apt install postgresql postgresql-contrib
II : Postgresql 사용자 생성
Django 에서 사용하는 DB 사용자를 생성해줌.
sudo -u postgres createuser --interactive
III : 데이터베이스 생성
sudo -u postgresql createdb <데이터베이스 이름>
IIII : Django 프로젝트와 PostgreSQL 연동
settings.py 파일의 Databases 설정을 PostgreSQL로 변경
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': '<데이터베이스 이름>',
'USER': '<데이터베이스 사용자>',
'PASSWORD': '<비밀번호>',
'HOST': 'localhost',
'PORT': '',
}
}
V : psycopg2 설치
Python에서 PostgreSQL을 사용하기 위해서 psycopg2 라이브러리를 설치해야 됨.
pip install psycopg2
VI : 마이그레이션 (Ubuntu 세팅 마무리)
python3 mange.py makemigrations
python3 manage.py migarte
2. Local 환경에서 게시판 구현
I : 모델 생성
# models.py
class Post(models.Model):
title = models.CharField(max_length=100)
content = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
II : 게시판 뷰 생성
# views.py
from django.shortcuts import render
from .models import Post
def board(request):
posts = Post.objects.all()
return render(request, 'board.html', {'posts': posts})
III : 템플릿 작성
<!-- board.html -->
<!DOCTYPE html>
<html>
<head>
<title>게시판</title>
</head>
<body>
<h1>게시판</h1>
<ul>
{% for post in posts %}
<li>{{ post.title }} - {{ post.created_at }}</li>
{% endfor %}
</ul>
</body>
</html>
IIII : URL 설정
# urls.py
from django.urls import path
from .views import board
urlpatterns = [
path('board/', board, name='board'),
]
결과:
설명 :
게시판 form 은 codepen 에서 참고하였으며
Models.py title, content, created_at 각각의 필드로 제목, 내용, 글 작성 시간 필드를 생성해줬고
작성(POST) 시에는 데이터베이스에 각각의 필드로 매핑되어 저장되게 됩니다.
다음 시간에는 글 작성 하는 방법을 알아보겠습니다.
반응형
'Ubuntu' 카테고리의 다른 글
3.[서버] Django를 이용해서 나만의 홈페이지를 만들어보자 [2/2 로그인 기능] 미리보기 (0) | 2023.11.16 |
---|---|
2.[서버] Django를 이용해서 나만의 홈페이지를 만들어보자 [1/2 로그인 기능] (0) | 2023.11.15 |
1.[서버] Django를 이용해서 나만의 홈페이지를 만들어보자 [환경세팅] (0) | 2023.11.15 |