Python 22

VS Code에서 HTML 기본 템플릿 사용하기 및 만들기

1. HTML 기본 템플릿 사용하기 VS Code의 기본 플러그인 Emmet으로 HTML 기본 코드를 빠르게 작성할 수 있습니다. 먼저 html확장자로 파일을 만들고 에디터 화면에서 "!"를 입력하고 "Tab"키를 누르거나 "html"을 입력하고 "html:5"를 선택하면 아래와 같이 기본 HTML 코드가 출력됩니다. 기본으로 제공되는 포멧이 맘에 들면 그대로 사용하면 되지만 lang="en" 이런놈을 좀 수정하고 싶다면 커스텀으로 템플릿 포멧을 만들 수 있습니다. 2. HTML 기본 템플릿 만들기 우선 각자의 취향이나 표준이 있겠지만 저는 아래와 같이 만들고 싶습니다. 큰 변화는 아니지만 넓직하니 보기 좋아보입니다. 우선 VS Code 좌측 하단 톱니바퀴 아이콘 클릭 후 "사용자 코드 조각 구성"을 클..

Python/ETC 2022.07.07

[Django-Memo] 9. 회원 가입

마지막으로 계정생성에 대해 진행하겠습니다. 회원가입 역시 common app에 구현하겠습니다. 우선 common/urls.py에 views를 import하고 path를 지정합니다. 계정 정보를 담을 UserForm을 생성합니다. 경로는 common/forms.py에 작성하며 django에서 제공하는 UserCreationform을 상속 받아 이메일 필드를 추가하여 작성합니다. 만약 User 모델에 정의되어 있는 추가 필드 중 이름 (성, 이름)을 받고 싶다면 아래와 같이 form 필드를 추가합니다. 다음으로 계정생성을 진행할 signup 함수를 common.views.py에 작성합니다. 단순 페이지 요청일 경우 form을 signup.html에 보내고 계정 생성을 위한 필드 입력 후 POST를 통한 요청..

Python/Django 2021.06.03

[Django-Memo] 8. 로그인/로그아웃 처리

개인의 메모를 보여주는 프로그램이므로 로그인이 필요하고 로그인 시 본인이 작성한 글만 보여야 합니다. 따라서 Memo 모델에 작성자를 추가하고 migration 해야 합니다. 먼저 Memo 모델에 author이란 변수이름으로 django 기본 제공 모델인 User의 ForeignKey로 추가합니다. 이제 쉘에 makemigrations을 입력하면 아래와 같은 메시지가 나옵니다. 1번은 새로 생성된 author에 기본값을 지금 지정하겠느냐라는 옵션이고 2번은 Memo 모델에서 default 옵션을 주겠느냐라는 이야기입니다. 만약 2번을 선택하면 빠져나가고 모델로 가서 다음과 같이 수정해야 합니다. author = models.ForeignKey(User, on_delete=models.CASCADE, de..

Python/Django 2021.06.02

[Django-Memo] 7. 페이징 처리 (Paginator)

페이징 처리를 위해 django에서 제공하는 페이징 패키지를 이용하겠습니다. 그리고 보여지는 형태는 한페이지에 게시물 10개, 하단 페이징 부분 표시 수는 5개씩 보여지도록 하겠습니다. 또한 6페이지를 호출하면 페이징 번호는 6부터 10까지 보이게 합니다. memo/views.py를 열어 패키지를 추가합니다. 그리고 게시물 10개, 페이징 표시 5개를 변수로 정의합니다. page번호를 get 파라미터로 받고 없으면 기본값으로 1을 설정합니다. 다음 메모 리스트를 조회하고 조회된 리스트와 한 페이지에 보여질 메모 수를 인자로 넣어 Paginator 객체를 생성합니다. 생성된 객체에 page 파라미터 변수를 이용해 해당 페이지 리스트를 memo_list.html에 반환합니다. 참고로 page_obj 객체를 ..

Python/Django 2021.06.01

[Django-Memo] 6. 화면 꾸미기

디자인을 할 수 없기에 화면을 그나마 이쁘게 꾸미기 위해서는 CSS를 써야하는데 이것 또한 만만한 작업이 아닙니다. 그래서 널리 알려진 bootstrap을 이용하겠습니다. 먼저 홈페이지 들어가 파일을 다운 받겠습니다. https://getbootstrap.com/docs/4.6/getting-started/download/ Download Download Bootstrap to get the compiled CSS and JavaScript, source code, or include it with your favorite package managers like npm, RubyGems, and more. getbootstrap.com 다음으로 복사할 곳을 만들어야 합니다. 프로젝트 루트 폴더에서 sta..

Python/Django 2021.05.31

[Django-Memo] 5. 메모 조회/삭제/등록

먼저 django에서 제공하는 admin 계정을 생성합니다. admin 페이지에서 간단한 테이블 관리를 할 수 있어 테스트 데이터 관리에 유용합니다. 쉘에 "python manage.py createsuperuser"를 입력하고 실행합니다. 관리자 아이디로는 admin을 입력하고 이메일주소, 비밀번호 입력 후 계정 생성을 완료합니다. 다음으로 admin app에 Memo 모델을 등록하여 관리할 수 있도록 해야합니다. memo/admin.py을 열어 아래와 같이 입력합니다. 다음으로 서버를 실행하고 브라우저 주소창에 "http://127.0.0.1:8000/admin" 입력하고 이동합니다. 참고로 관리자 페이지가 영문으로 출력되면 "config/settings.py"에서 아래쪽에 "LANGUAGE_CODE..

Python/Django 2021.05.30

[Django-Memo] 4. App 및 Model 생성

처음 계획 시 App에 대한 설계는 로그인/로그아웃 : auth 회원가입 : signup 메모관리 : memo 3가지로 생각했는데 강좌를 읽어보니 django에서 auth라는 App 이름으로 로그인/로그아웃, 회원정보에 대한 관리를 기본적으로 제공한다고 합니다. 그러면 auth, signup은 따로 만들필요 없고 memo만 생성하면 될 거 같습니다. 1. Model 설계 메모 페이지에서 보여줄 내용은 메모 내용, 생성 시간이며 삭제 기능이 있습니다. 삭제는 실제 삭제하지 않고 flag를 두어 보여줄지 말지 하겠습니다. No 필드명 타입 내용 1 content varchar(100) 메모 내용 2 is_del tinyint(1) 삭제 여부 (기본값 0) 3 created_date datetime(6) 등록..

Python/Django 2021.05.29

[Django-Memo] 3. 데이터베이스 설정 및 기본 APP migration

django를 설치하면 기본 데이터베이스로 sqlite3로 설정되어 있습니다. 개발 시 이 데이터베이스를 사용해도 무방하나 django를 처음 배우는 입장에서 전체적인 구조를 이해하기 위해 실제 데이터베이스를 셋팅하려 합니다. 현재 mariaDB를 설치하였으며 기존 설정은 sqlite3 이름으로 두고 mariaDB 설정을 추가하도록 하겠습니다. 우선 /config/settings.py를 열어 "DATABASES" 구문을 찾습니다. 기본 설정은 sqlite3엔진에 BASE_DIR (프로젝트 폴더)에 있는 db.sqlite3라는 이름의 데이터베이스를 사용한다는 내용입니다. "ENGINE"은 django에서 기본으로 제공하는 데이터베이스 관련 엔진이며 내장된 엔진은 아래와 같습니다. PostgreSQL : '..

Python/Django 2021.05.28

[Django-Memo] 2. 프로젝트 생성 및 서버 실행

프로젝트 생성을 위한 폴더를 생성합니다. 프로젝트명에 맞게 memo라는 폴더를 생성했습니다. 새로 만든 memo 폴더로 이동한 다음 django 프로젝트 생성을 위해 아래와 같이 "django-admin startproject config ."을 입력합니다. 참고로 맨뒤에 "config (공백) ." 주의해야 합니다. "."의 의미는 현재 폴더에 생성하겠다는 내용입니다. 이제 프로젝트에 파일들이 잘 생성되었는지 확인합니다. 새로 생성된 파일 및 폴더는 config db.sqlite3 manage.py "db.sqlite3"는 django에서 제공하는 간단한 파일형식의 데이터베이스이며 사용 안할 예정입니다. config 폴더 내 파일입니다. 새로 생성된 파일 및 폴더는 asgi.py settings.py ..

Python/Django 2021.05.28
반응형