170303_TIL

|

오늘 한 일

  • 첫 장고 프로젝트를 마무리했다. pythonanywhere를 사용해서 배포도 해보았다. 간단한 페이지이지만 스스로 찾아가면서 구현했다는 점이 뿌듯하다. 2일동안 강의도 듣지 않고 프로젝트에만 집중했는데 배우는 것도 많고 재미있었다. 기능을 구현해놓고 보니 예쁘게 꾸미고 싶어서 bootstrap으로 마크업을 진행했다. 지금은 간단한 기능 구현에도 이렇게 시간이 많이 걸리지만, 조만간 ‘이런때도 있었지’ 하고 추억하는 날이 어서 왔으면 좋겠다.
  • 파이썬으로 기초 알고리즘 문제를 풀었다. 파이썬 언어는 문법을 한번 훑어본 정도라 모르는 함수도 많고 아직은 많이 부족하다는걸 실감했다.
  • 점프투파이썬 문자열 자료형 부분을 읽었다.

내일 할 일

  • 장고강의 듣기
  • 점프투파이썬 읽기
  • 장고걸스 가이드 읽기 시작하기

170302_TIL

|

오늘 한 일

  • 드디어 python과 django로 처음으로 무언가를 스스로 만들어 보았다. 메모장의 입력, 출력, 수정, 삭제의 간단한 기능을 구현하는데 하루종일 걸렸다. 그래도 필요한 기능을 기술문서를 보고 찾아가면서 추가하는 과정에서 많은걸 배울 수 있었다. 강의도 좋지만 역시 만들면서 배우는게 가장 큰 것 같다.

내일 할 일

  • 메모장 앱 완성하기

django 06. 두번째 장고앱 2 - 모델만들기

|

django 06. 두번째 장고앱 2 - 모델만들기

파이썬 웹 프로그래밍 - Django로 웹 서비스 개발하기

모델 만들기

  • django는 model이 Database를 저장한다.
  • ORM (Object Relational Mapping) : 오브젝트와 데이터베이스를 연결하여 데이터베이스의 CRUD를 쉽게 할 수 있게 함

데이터베이스 모델링

  • 보통 요구사항 분석이 끝나면 데이터베이스 모델링, 즉 데이터베이스 설계를 하게 된다.
  • 여기서 choice 모델의 fk(foreign key) 는 Question 모델의 id를 그대로 가져온다.
poll-model
모델 구현계획

models.py 작성 - 필드 세팅

  • 앱폴더(polls) 내의 models.py 에 설계한 모델 클래스를 추가
  • 모델 클래스 들은 항상 models.Model 클래스를 상속 받는다.
from django.db import models

# Create your models here.
class Question(models.Model): # 항상 Model 클래스를 상속받는다
    #pk 는 자동으로 생성
    question_text = models.CharField(max_length = 200)
    pub_date = models.DateTimeField('date published')

class Choice(models.Model):
    # 질문을 삭제 했을 때 연관 항목을 어떻게 할지 설정 - 자동 삭제
    question = models.ForeignKey(Question, on_delete = models.CASCADE)
    choice_text = models.CharField(max_length = 200)
    votes = models.IntegerField(default = 0)

모델을 DB에 반영하기

  • 아래 명령어를 통해 모델을 DB에 반영한다.
  • $ python manage.py makemigrations
  • $ python manage.py migrate
$ python manage.py makemigrations
Migrations for 'polls':
  polls/migrations/0001_initial.py:
    - Create model Choice
    - Create model Question
    - Add field question to choice

$ python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, polls, sessions
Running migrations:
  Rendering model states... DONE
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying polls.0001_initial... OK
  Applying sessions.0001_initial... OK

django 06. 두번째 장고앱 1 - 셋업 및 urls.py와 views.py 수정

|

django 06. 두번째 장고앱 1 - 셋업 및 urls.py와 views.py 수정

파이썬 웹 프로그래밍 - Django로 웹 서비스 개발하기

사전준비 - 프로젝트 및 앱 생성

사전준비 상세내용

  1. 가상환경 설치 (virtualenv)
  2. 가상환경 실행
  3. 설치된 패키지 확인 및 장고 설치 (pip)
  4. 프로젝트 생성 ($ django-admin startproject 프로젝트 이름)
  5. settings.py 수정 (TIME_ZONE, LANGUAGE_CODE, INSTALLED_APPS)
  6. app 생성 ($ django manage.py startapp 앱 이름)
  7. 서버실행 - 특정 포트번호로 실행 가능 (python manage.py runserver 8080)

urls.py와 views.py 테스트 등록

첫번째 실습과 다른 방식으로 urls.py 를 설정한다 - Including another URLconf

  • 프로젝트 폴더 (myapp) 내의 urls.py 내용을 앱폴더 (polls) 에 복사
from django.conf.urls import url

from . import views
urlpatterns = [
    url(r'^$', views.index, name='index'),
]
  • 프로젝트 폴더 (myapp) 내의 urls.py 내용 수정 - Including another URLconf
from django.conf.urls import url, include
from django.contrib import admin


urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^polls/', include('polls.urls')),
    #polls 로 시작하는 url은 polls의 urls 로 처리해라
]

170301_TIL

|

오늘 한 일

  • django 강의 를 들었다. 강의 내용중 로또 번호 랜덤 추출앱을 만드는 부분이 있었다. 비록 강의 내용대로 따라 치는 코드지만, 무언가를 만들었다는게 뿌듯했다. 배운 내용을 응용해서 메모앱을 만들어 보려고 한다. 어디서 본건 있어서 구글 독스에 백로그 시트도 만들어 두었다. 만드는 과정 중에 많은걸 배울 수 있었으면 좋겠다.

오늘 느낀 것

  • 장고 가이드 문서를 천천히 보면서, 문서를 읽는 것이 생각보다 힘겨운 일은 아닌 것 같다는 생각이 문득 들었다.

내일 할 일

  • 장고 강의 듣기