티스토리 뷰

파이썬 프로젝트 폴더로 이동해서 임의의 새 폴더를 만들어준다.

(C:\Users\user\PycharmProjects\girl)

그리고 명령 프롬포트를(실행-cmd입력) 실행하여 새로 만들어준 폴더로 이동한다
cd C:\Users\user\PycharmProject\gril
cd명령어를 통해서 이동할 수 있다.


위와같이 C:\Python34\python -m venv myvenv 를 프롬포트 창에 입력하면 새로 만들어준 girl 폴더안에 myvenv라는 폴더가 생긴것을 확인할 수 있다.
이렇게 해서 girl 폴더에 서버를 구축할 것이다. ( myvenv 폴더의 이름은 임의로 만들어줄 수 있다.)


위와같이 myvenv\Scripts\activate 를 프롬포트에 입력하면 프롬포트의 모양이 바뀐것을 확인할 수 있다.
맥이나 리눅스의 경우 Scripts 폴더가 없고 bin폴더에 있다. 추가적으로 앞에 source를 붙여서 source\myvenv\bin\activate라고 입력해야 한다.


pip install django==1.8 을 입력하면 1.8버전의 장고를 설치하게 된다. 퍼센트가 올라가면서 설치현황을 보여주는 경우도 있는데 내경우는 기다렸더니 인스톨이 완료되었다는 메세지가 툭 튀어나왔다. 


django-admin.exe startproject mysite . 을 입력한다. mysite와 .사이에는 공백이 있는것을 주의해야 한다. mysite는 폴더이름이라 임의로 지정할 수 있다.

이렇게 입력하고 나면 gril 폴더에 mysite라는 폴더가 생긴것을 확인할 수 있다.
그리고 파이참을 실행하여 girl 폴더를 통째로 열어보자.

정상적으로 열기가 완료되었으면 아래와 같은 화면을 파이참 좌측에서 확인할 수 있다.

settings.py 파일을 열어서 TIME_ZONE 라는 변수를 찾는다. 'Asia/Seoul' 을 입력한다. 시간을 아시아의 서울로 설정한다는 뜻이다.

STATIC은 바꿀수 없는 파일이라는 뜻이다.

추가로 103 라인을 입력했다. BASE_DIR은 mysite 즉 루트폴더이다. 위에 보면 정의되어있다.

77라인 이하를 살펴보면 우리가 작업하는 과정에서 위에 입력된 db.sqlite3이 만들어 진다는 것을 확인할 수 있다.

cmd 창으로 이동해보자.

다음과 같이 python manage.py migrate 라는 명령어를 입력한다. 진행과정이 출력되고

girl 폴더안에 manage.py와 db.sqlite3이 생성되었다는 것을 확인 할 수 있다. 현재 girl폴더의 상태가 다음과 같다면 잘 따라오고 있다는 것이다.

python manage.py runserver 를 입력하면 나만의 서버를 실행할 수 있다. 다음과 같이 출력된다.

크롬 주소창에 127.0.0.1:8000을 입력해보자. 다음과 같은 창이 뜬다면 서버 구동에 성공한 것이다.
프롬포트 창에 컨트롤 c를 누르면 인터럽트를 보내 서버를 종료할 수 있다.

startapp 명령어를 이용하여 프로젝트를 생성할 수 있다. blog라는 프로젝트를 만들어보자

blog 폴더가 생성된것을 확인할 수 있다.

settings.py 파일로 돌아와서 위와같은 한줄을 추가해준다.
기존에 admin, auth 등등의 파일이 있었는데 blog도 이에 추가해 준다는 의미이다.


blog 폴더의 models.py를 열어서 장고 클래스를 입력해보자

author = 누가 만들었는가
이것을 데이터베이스에서의 외래키(ForeignKey)로 사용한다.

제목에 CharField(max_length=200)의 옵션을 부여한것은 길이제한을 하기 위해서이다.
본문에 TextField()의 속성은 길이제한이 없다.
만든날짜는 기본값으로 현재 시간을 준다. 문서를 작성할때 자동으로 기입된 상태로 출력된다. 

블로그에 모델을 만들었으니까 이를 makemigrations 명령을 통해 업데이트 한다.
모델의 이름이 Post 구나 하고 인식하면 정상적으로 동작된 것이다.

migrate 명령을 통해서 blog를 db에 업데이트 한다.
자, 서버도 만들고 앱도만들고, 앱안에 모델도 만들었지만 아직 사용은 할 수 없다.

admin 파일로 이동하여 만들어놓은 Post를 등록해준다.
from .models 는 접두어로 '.'을 붙여줌으로서 현재 폴더 혹은 현재 프로젝트에 있는 model 이라는 뜻이 된다. 그래서 models 폴더에 있는 Post를 import 하고 그것을 등록한 것이다.
python manage.py runserver 명령을 통해서 다시 서버를 구동해보자. 이번에는 크롬을 구동하여 127.0.0.1:8000/admin 으로 접속해본다.


다음과 같이 관리자 계정 창이 뜬 것을 확인할 수 있다. 아직 접속할 수는 없다 관리자 계정이 없어서 ㅎㅎ
관리자 화면을 확인했다면 다시 돌아와서 컨트롤C로 서버를 종료한다.

위와같이 관리자 계정을 만들어보자. 이름은 관리자라는 뜻인 admin, 패스워드는 입력해도 보이지 않는다. 보안을 위해서 보이지 않는것이고 실수한게 없으므로 안심하도록 하자.
다시 서버를 구동하여 로그인을 해보도록 한다.

관리자 접속이 성공했다. 위 화면에서 그룹을 만들거나 회원을 만들거나 하는 작업을 add버튼을 눌러서 쉽게 진행할 수 있다.
나는 Users를 add해서 Andrew 사용자를 추가하였다.

블로그의 Post를 눌러서 들어온후 Add Post를 눌러보자.

아까 만들어놓은 필드가 5개 준비되어 있는것을 확인할 수 있다.

다음과같이 여러개 데이터를 입력해서 저장해보자.

나는 책정보를 7가지 정도 입력을 했다.

서버를 끄고 파이참으로 돌아간다.

mysite 폴더에 있는 urls의 역할은 장고 웹서버로 들어오는 주소를 어디로 보낼지 결정한다.


url의 첫번째 전달인자는 url 패턴으로 정규표현식을 사용한다. 6번 라인을 보면 admin이 입력되었을때 admin.site.urls를 연결하고
7번라인은 나머지는 blog.urls로 연결한다는 뜻이다. 이 문장들을 실행시키기 위해 코딩을 좀 해야겠다.

urls 파일을 만들어주고 다음과 같이 입력해보자.
다시 서버를 구동하고 127.0.0.1:8000으로 접속해보자


에러가 났다. Exception Value 에서 에러 메세지를 확인할 수 있다.

밑으로 내려보면 에러가 어디에서 발생했는지를 확인해 볼 수 있다.

html 파일의 root 폴더가 될 templates 폴더를 새 폴더로 만들어준다. templates 폴더 안에 blog 폴더도 새로 만들어야 한다.
총 두개의 폴더를 새로 만들었다.

에러를 없애기 위해서 이제 templates\blog\에 post_list.html 파일을 만들어야 한다.

이렇게 html 파일을 만들고 코딩을 해보자

입력을 완료하면 다시 서버를 껐다 킨뒤 접속해보자.


결과를 확인할 수 있다. title에 썼던 내용이 페이지 이름으로 나오고 body에 썼던 내용이 출력된다. 원활한 작업을 위해서는 html언어를 조금 아는것이 도움이 되겠지만 모르면 검색해서 사용해도 금방 쉽게 할 수 있기때문에 반드시라고 할 수는 없겠다.

이제 코딩을 마무리 해 보겠다.

view.py에서 이와같이 입력한다. 포스트마다의 현재시간을 post_list.html로 보내서 날짜순으로 정렬한다는 뜻이다.
여기에서 published_date__lte 에서 lte는 less than equal로 작거나 같다는 뜻이다. 코드에서는 현재시간보다 작거나 같다는 뜻으로 published_date__lte가 null이 아닌 모든 값을 의미한다. 
render 함수를 통해 blog의 post_list.html로 posts라는 이름으로 posts의 값을 보낸다. 중괄호를 사용한 딕셔너리의 형태이므로 콤마를 찍어서 여러개의 클래스를 보낼 수도 있다.

post_list.html에서 장난스러운 코드는 빼고 위와 같이 입력한다.


css를 추가해보자. 아래와 같이 색깔이 바뀌는것을 확인해볼수 있다.

위 코드는 외부의 파일을 가져와서 바꾼것이고 임의의 css파일을 만들어보자.


위 경로와 같이 blog 폴더안에 static 폴더와 그 안에 css폴더를 만들어준다.


css폴더 안에 blog.css를 만들어준다.


h1 안에 있는 a의 컬러값을 지정한다는 뜻이다. blog.css내부에 적어보자.
이것을 css 셀렉터라고 한다.

1번 라인은 static 폴더 안에 있는 file들을 모조리 가져오겠다는 뜻이다.
그리고 우리가 만든 css를 적용할 수 있도록 link를 한줄 더 추가해주자.

오렌지색깔로 바뀐것을 확인할 수 있다.
한가지만 더 추가해보자. css 파일을 아래와 같이 수정한다.


body에 왼쪽 패딩을 준다는 뜻이다.


다음과 같이 글씨의 왼쪽에 패딩(여백)이 들어간것을 확인할 수 있다.

이와 같은 방법으로 폰트나 글씨 사이즈를 수정하고 이미지등을 넣을 수도 있다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함