728x90
반응형

Web 30

Django(장고) static 디렉터리와 템플릿 상속 및 include 태그 사용

Django의 static 1. static 디렉터리 추가 static 디렉터리는 스타일시트 파일을 저장하는 곳이다. templates 디렉터리와 마찬가지로 static 디렉터리도 settings.py 파일에 등록해주어야한다. STATIC_URL = '/static/' STATICFILES_DIRS = [ BASE_DIR / 'static', ] 2. 스타일시트 작성 및 템플릿에 스타일 적용 static 디렉터리에 style.css 파일을 다음과 같이 간단하게 작성해보았다. textarea의 넓이를 100%로, "답변 등록" 버튼 상단에 100 픽셀의 여백을 설정했다. textarea { width:100%; } input[type=submit] { margin-top:10px; } 이제 question..

Web/Django 2021.08.03

Django(장고)에서 POST 방식의 데이터 저장

1. 템플릿에 답변 등록 폼 추가 앞서 작성해두었던 question_detail.html을 다음과 같이 수정해서 답변의 내용을 입력할 수 있는 텍스트창, 저장할 수 있는 "답변등록" 버튼을 추가해준다. 답변을 저장하기 위한 URL은 form 태그의 action 속성에 {% url 'pybo:answer_create' question.id %}로 지정해주었다. form 태그 바로 밑에 {% csrf_token %}은 보안에 관련된 항목으로 form으로 전송한 데이터가 실제 웹 페이지에서 작성한 데이터인지 판단해주는 가늠자 역할을 한다. 만약 해커가 엉뚱한 방법으로 데이터를 전송할 경우에는 서버에서 발행한 csrf_token 값과 해당 툴에서 보낸 csrf_token 값이 일치하지 않기 때문에 오류가 발생할..

Web/Django 2021.08.03

Django(장고) url 별칭과 네임스페이스 살펴보기

이번에는 Django URL 별칭에 대해 정리해볼 것이다. 이전 게시물에서는 템플릿에 다음과 같이 html 코드를 작성했다. {{ question.subject }} 하지만 만약 url 형식을 /pybo/{{ question.id }} 에서 /pybo/question/{{ question.id }} 형식으로 변경해야한다고 하자. 이러한 경우에는 해당 url이 사용된 모든 html 문서를 찾아서 변경해주어야한다. 따라서 이런 문제점을 해결하기 위해 URL 별칭과 네임인터페이스를 사용한다! 1. URL 별칭 URL 별칭을 사용하기 위해선 URL 매핑에 name 속성을 부여해야한다. /notes/urls.py를 다음과 같이 수정한다. from django.urls import path from . import..

Web/Django 2021.08.03

Django(장고) 템플릿과 데이터 조회 및 URL 매핑하기

1. 데이터 목록 notes/views.py 파일의 index 함수를 다음과 같이 작성한다. from django.shortcuts import render from .models import Question def index(request): question_list = Question.objects.order_by('-create_date') #create_date를 역순으로 정렬 context = {'question_list': question_list} return render(request, 'notes/question_list.html', context) Question은 이전 게시물에서 생성한 모델 이름이고, Question.objects.order_by(기준)로 데이터를 정렬할 수 있다. ..

Web/Django 2021.08.02

Django(장고) 관리자 계정 생성 및 관리자 페이지 사용하기

1. 슈퍼유저(superuser) 장고 관리자를 사용하기 위해선, 장고 관리자 화면에 접속할 수 있는 슈퍼유저를 먼저 생성해야함. 슈퍼유저 생성 명령어는 다음과 같다. python manage.py createsuperuser 다음과 같이 사용자 이름, 메일 주소, 패스워드를 설정해준다. 비밀번호를 간단한 것으로 설정하면 아래와 같이 경고 문자가 출력된다. 실제로는 이렇게 취약한 비밀번호를 사용하면 안되지만, 연습용이므로 y를 눌러 그대로 진행했다. 2. 장고 관리자 화면 python manage.py runserver 명령어를 터미널에 입력하여 로컬 서버를 구동한 후, http://localhost:8000/admin 페이지로 접속하면 다음과 같은 화면을 볼 수 있다. 앞서 설정한 사용자 이름과 비밀번..

Web/Django 2021.08.02

Django ORM을 활용한 모델(model) 생성 및 데이터 처리하기

모델(Model) 1. Django App migrate 하기 Django는 모델(Model)이라는 것을 이용해서 데이터베이스를 처리한다. 보통의 데이터베이스는 SQL 쿼리문을 통해 데이터를 추가, 수정, 삭제, 조회를 하지만 장고의 모델(Model)을 이용하면 이러한 쿼리문 없이 데이터를 쉽게 처리할 수 있다. settings.py를 보면 INSTALLED_APPS에서 설치된 앱들을 볼 수 있다. 아래 앱들은 장고 프로젝트 생성 시 기본적으로 설치되는 앱들이다. INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.cont..

Web/Django 2021.08.01

Pycharm에서 Django 설치 및 개발환경 세팅하고 서버 실행하기

1. Django 설치 powershell 또는 아나콘다 prompt 창에 다음과 같이 입력하여 설치한다. pip install django 2. 프로젝트 생성 장고에서 '프로젝트'는 하나의 웹사이트이고, 프로젝트 안에는 여러 개의 앱이 존재한다. 이 앱들이 모여 웹 사이트를 구성한다. 여기서 앱이란 관리자 앱, 인증 앱 등과 같이 장고가 기본으로 제공하는 앱과 개발자가 직접 만든 앱을 칭한다. (장고의 앱은 프로젝트를 구성하는 작은 단위의 기능) Pycharm을 실행한 뒤 New project를 클릭하여 새 프로젝트를 생성해준다. Location에 프로젝트를 생성할 경로를 선택하고, Virtualenv로 선택, 그리고 아래 Location이 빨간색 밑줄처럼 venv로 설정되어있는지 확인한다. 이제 Cr..

Web/Django 2021.08.01

AWS EC2 인스턴스에 Web 서버 환경 세팅

AWS EC2 인스턴스에 Web 서버 환경 세팅을 할 때 참고하기 위해 작성한 글이다. 1. 한국시간 세팅 EC2 컴퓨터의 시간대를 한국으로 맞추는 명령어 sudo ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime 2. 파이썬 (python3 -> python) python3 명령어를 python으로 사용할 수 있게 하는 명령어 sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 10 3. pip (pip3 → pip) 1) pip3 설치 2) pip3 명령어를 pip으로 사용할 수 있게 하는 명령어 # pip3 설치 sudo apt-get update sudo apt-get i..

Web/기타 2021.07.31

[스파르타코딩클럽] 5주차 일지 - 그동안 수업 들은 후기

배운 내용 먼저 현재까지 배웠던 내용들을 모두 활용하여 프로젝트를 셋팅하고, DB를 만들고, GET, POST 연습까지 진행해보았다. 그리고 AWS EC2 인스턴스를 생성해서 Filezilla라는 ftp 프로그램을 활용하여 웹 서버 구축을 위한 파일들을 올리고, DB 서버 등을 구축한 뒤 코드를 실행하여 웹 페이지에 접속해보았다. 이때 포트포워딩이라는 개념을 알게 되었고, nohup이라는 리눅스 명령어를 통해 AWS EC2 원격접속을 종료하더라도 웹 페이지에 계속 접속할 수 있도록 하는 명령어를 알게 되었다. 마지막으로 가비아 사이트에서 도메인을 구입한 뒤 웹 페이지를 연결하는 시간을 가졌고, 4주차 때 배운 OG 태그를 활용하여 카카오톡, 페이스북 등 SNS에 링크를 공유할 경우 요약 내용이 뜰 수 있..

Web/기타 2021.07.31

AWS에 웹 서버 구축 및 DB 서버 연결 및 웹 페이지 배포하기

이번에는 1) AWS에 웹 페이지를 개발한 코드를 올리고, 2) AWS의 DB를 내 컴퓨터와 연결하고, 3) 포트 포워딩해준 뒤, 4) AWS EC2 인스턴스의 원격접속을 종료하더라도 웹 페이지 접속이 계속 가능하도록 (즉, 컴퓨터를 종료해도 웹 페이지 접속이 가능하도록) 설정하는 방법을 알아보려고 한다! 1. 웹 페이지 개발하기 먼저, 만들고자하는 웹페이지를 개발한다. 2. AWS에서 포트 열어주기 EC2 인스턴스에서 포트를 따로 설정하는 것 이외에도, AWS EC2에서도 자체적으로 포트를 열고 닫을 수 있게 관리를 하고 있다. 따라서 AWS EC2 Security Group 에서도 인바운드 요청 포트를 열어주어야한다. 먼저 해당 인스턴스의 보안 그룹 이름을 확인하고, 해당 보안 그룹 설정으로 들어간다..

Web/기타 2021.07.29
728x90
반응형