본문 바로가기

programming/Gukbi

국비 교육 101일차 - Django ORM 프로그램

728x90
반응형

파이참에서 파이썬 프로젝트를 새로 시작하려면 장고를 먼저 설치해야하고, 설정할 파일들이 많다. 

이걸 먼저 정리해보겠다. 

 

1. 장고를 설치

(venv) C:\Users\user\PycharmProjects\exercise>pip install django

 

2. config 파일 설정

(venv) C:\Users\user\PycharmProjects\exercise>django-admin startproject config .

 

3. app 파일 설정

(venv) C:\Users\user\PycharmProjects\exercise>python manage.py startapp diaryapp

 

4. 데이터베이스 설정

(venv) C:\Users\user\PycharmProjects\exercise>python manage.py migrate

 

관리자 계정을 설정하는 법을 배웠으니 일단 그걸 설정하는 법도 정리

 

5. 관리자 계정 설정

(venv) C:\Users\user\PycharmProjects\exercise>python manage.py createsuperuser
Username (leave blank to use 'user'): yujin
Email address: yujin@gmail.com
Password:
Password (again):

 

5-1. 관리자 계정을 설정하고 서버를 돌려서 제대로 돌아가는지 확인해보기

(venv) C:\Users\user\PycharmProjects\exercise>python manage.py runserver

 위는 서버를 돌리는 코드 

 

 

아래 주소를 주고 들어가면

http://127.0.0.1:8000/admin/

어드민 계정으로 접속할 수 있다. 

 

여기서 Notice에 있는 내용을 등록, 수정, 삭제하는 프로그램을 ORM으로 만들 수 있다. 

 

일단 순서를 정리하면

models.py에서 dao연결 할 내용 등록 -> views.py에서 사용자로부터 받아올 값+전송할데이터 정리 -> urls.py에서 파일 이동할 주소 정리

 

 

models.py 파일

from django.db import models
from django.urls import reverse
# Create your models here.
class Member(models.Model):
    name=models.CharField(max_length=34)
    sex=models.CharField(max_length=4)
    addr=models.TextField()
    tel=models.TextField()
    def __str__(self):
        return self.name+"("+self.sex+")"

    #args --> ?뒤에 값을 주는 것
    def get_absolute_url(self):
        return reverse('detail',args=[str(self.id)])

 

이동할 path값을 정해주는 urls.py 파일

from django.urls import path
# 세개 동시에 줄때는 from .views import *
from .views import MemberListView
from .views import MemberCreateView
from .views import MemberDetailView
from .views import MemberDeleteView
from .views import MemberUpdateView
urlpatterns=[
    path('',MemberListView.as_view(),name="list"),
    path('add/',MemberCreateView.as_view(),name="add"),
    path('detail/<int:pk>/',MemberDetailView.as_view(),name="detail"),
    path('delete/<int:pk>',MemberDeleteView.as_view(),name="delete"),
    path('update/<int:pk>',MemberUpdateView.as_view(),name='update'),
]

urlpatterns=[]에 사용할 path값을 등록해준다

 

 

views.py 파일

from django.shortcuts import render
from .models import Member
from django.views.generic.list import ListView
from django.views.generic.edit import CreateView,UpdateView,DeleteView
from django.views.generic.detail import DetailView
from django.urls import reverse_lazy
#데이터베이스 연결 (models.py) => 데이터를 읽어와서 html로 전송
'''
요청(URL) => admin.py(등록된 path) => models.py (데이터베이스 연동) => views.py => html전송
'''
# Create your views here.
class MemberListView(ListView):
    model = Member

class MemberCreateView(CreateView):
    model=Member
    fields = ['name','sex','addr','tel']
    success_url = reverse_lazy('list')
    template_name_suffix = '_create'

class MemberDetailView(DetailView):
    model=Member

class MemberDeleteView(DeleteView):
    model=Member
    success_url = reverse_lazy('list')

class MemberUpdateView(UpdateView):
    model=Member
    fields = ['name','sex','addr','name', 'tel']
    template_name_suffix = '_update'

views.py는 장고에서 controller에 해당하는 파일이다. 사용자가 전달한 데이터, 사용자에게 다시 전달할 데이터를 정리해서 넘겨주면 된다. 

728x90
반응형