nan + nan = 2nan

[Django]0805_Project & app 본문

Python/Django

[Django]0805_Project & app

2nan 2021. 8. 5. 21:37
728x90
  1. Django Model을 사용하여 CRUD를 수행할 수 있다.
  2. Django View의 구현방법 2가지를 구분할 수 있다.
  3. Django Template에서 사용하는 태그와 문법을 적용할 수 있다.

- 프로젝트 작성 순서 (초반)

# 프로젝트 생성

  • mysite 폴더 생성
  • mysite 폴더 안에서 config 프로젝트 생성   - django-admin startproject config .
  • mysite 폴더 안에서 polls 앱 생성                - django-admin startapp polls

# 구동 확인용

  • (config) urls.py, (polls) urls.py 설정
  • (polls) views.py 함수 작성 ->  서버 구동 : python manage.py runserver

# 모델 작성 및 테이블 생성

  • (config) settings.py INSTALLED_APP : 'polls'문자열 추가
  • (config) settings.py DATABASE : mariadb 설정    ->    # DB Name, User, Host IP, PW
  • (polls) models.py 클래스 작성 (Question, Answer)
  • makemigrations(모델 클래스 -> 여러가지 설정 / 옵션 정리 과정) + migrate ( 데이터베이스에 반영)

# HeidiSQL 확인

# Shell 연습 (모델 테스트)

 

- 관리자 사이트 사용시 확인사항

1. admin.py

 => admin.site.register(모델)

2. createsuperuser

  => python manage.py createsuperuser

 

- mysite (질문/답변 웹서비스) / “답변 등록” 동작 순서

 

답변 등록 양식 - /form/

config/urls.py                                                         →                      polls/urls.py                →

urlpatterns = [                                                                             url patterns = [ 

    path('polls/', include('polls.urls')),                                                path('form/', views.form),

  

          ]                                                                                            ]

views.py                                              →                                        form.html

def form(request):                                               <form action="/polls/proc/">                                         

    return render(                                                      <input type='text' name='dname'>

                request,                                                  <input type='text' name='deptno'>             

                'form.html'                                              <input type='text' name='loc'>

             )                                                              <button>insert</button>                        

                                                                      </form>

 

답변 등록 처리 (데이터 저장) - /proc/

config/urls.py                                                         →                      polls/urls.py                →

urlpatterns = [                                                                             url patterns = [ 

    path('polls/', include('polls.urls')),                                                 path('proc/', views.proc),

  

          ]                                                                                            ]

views.py                                                                →                      응답결과 (문자열)

def proc(request):

    dname = request.GET.get('dname')

    deptno = request.GET.get('deptno')

    loc = request.GET.get('loc')

 

    d = Dept(dname=dname, deptno=deptno,  loc=loc)

    d.save()

 

    return HttpResponse('%s %s %s' % (dname, deptno, loc))

 

Comments