«   2024/09   »
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
Archives
Today
Total
09-21 13:21
관리 메뉴

DevTzu

장고(Django) 설치 본문

study

장고(Django) 설치

DevTzu 2018. 8. 27. 17:25
반응형


1.파이썬 설치
- www.python.org에서 다운로드 메뉴 - Python 3.5이상 선택해서 다운로드
- 설치 과정에서 Add Python 3.5 to Path 반드시 체크
- 설치 확인
  윈도우키 + R을 눌러서 나오는 창에 powershell이라고 치고, 확인을 눌러서 powershell실행
  powershell화면에서 python이라고 입력해서 오류가 나오지 않으면 설치 성공


2.저장한 코드 실행방법
Python test.py


3.Django 설치
- 플랫폼에 따라서 Django를 설치하는 방법이 다릅니다.
- 윈도우 - powershell에서
> pip install django


4.Django 프로젝트 만들기
- Django 프로젝트 생성
  프로젝트를 만들고자 하는 폴더로 이동
  django-admin startproject <프로젝트이름>

- Django 서버 실행
  앞에서 생성했던 <프로젝트이름> 디렉토리로 이동
  python manage.py runserver

- Django 서버 접속
  웹브라우저(IE, chrome, firefox, safari, opera 등) 실행
  주소창에 127.0.0.1:8000 또는 localhost:8000 입력 -> It Worked! 화면이 나오면 성공

- Django 서버 중단하기
  Ctrl+C



5.hello world 출력하기
- app 만들기
  프로젝트 폴더로 이동
  python manage.py startapp <앱이름>
  ls 명령어를 치면 <앱이름>이라는 디렉토리가 생성되어 있음

- hello world를 출력하는 index 함수 만들기
  앞에서 생성한 <앱이름> 폴더로 이동
  views.py(\프로젝트이름\앱이름\views.py) 수정 - 페이지 요청에 대해 hello world라는 httpResponse

- 앱에 접근할 조건을 지정하는 함수 만들기
  \프로젝트명\프로젝트명\urls.py에 urlpatterns 수정

- 앞서 생성한 index 함수를 실행할 조건을 지정하는 함수 만들기
  앞서 생성한 <앱이름> 폴더로 이동
  urls.py(\프로젝트이름\앱이름\urls.py) 파일 생성
  urls.py에 urlpatterns로 index함수를 지정

#참고
app - 웹사이트를 기능별로 분류해놓은 단위
urlpatterns - 서버에 요청이 들어온 경우, 담당자를 지정하는 역할. url(주소, 주소에 접속하면 실행될 명령어)
include - 앱 접속을 위해 씁니다.



6.app과 관련된 정보를 저장할 model
- 모델클래스는 앱 안의 models.py에 정의합니다.
- 모델 class는 models.Model을 상속받아야 합니다.
- 모델 class안의 멤버 변수의 field에 대한 정보는 Field types를 참고해주세요

#참고
django에서 보통 model이름은 대문자로 시작하고, 단수형으로 씁니다.

# C:\Code\mysite\elections\models.py
class Candidate(models.Model):
    name = models.CharField(max_length=10)
    introduction = models.TextField()
    area = models.CharField(max_length=15)
    party_number = models.IntegerField(default=1)



7.모델을 DB에 저장하기 위한 준비 과정
- mysite/settings.py - INSTALLED_APPS 리스트에 elections(앱이름) 추가
- app폴더/models.py - 테이블 작성
- app폴더/admin.py - 티이블 등록
- mysite 폴더로 이동 후 python manage.py makemigrations 입력
- python manage.py migrate로 DB에 공간 만들기

(수정후 DB초기화 이후 다시 migration하기)
- (root) db.sqlite3 - 삭제
- (root\app\migrations) __init__.py 빼고 다 삭제
- python manage.py makemigrations
- python manage.py migrate
- (admin 등록) python manage.py createsuperuser


8.admin으로 접속
- admin 사용자 만들기
  프로젝트 폴더로 이동
  python manage.py createsuperuser 실행
  유저 이름과 email, password 설정

- 서버 실행
  python manage.py runserver

- admin으로 접속
  브라우저에서 admin:localhost:8000/admin으로 접속
  1에서 만든 사용자로 접속



9.Candidate 등록
- app폴더의 admin.py에 model에서 정의한 Candidate를 regist
- 브라우저를 새로고침 하면 Candidate가 반영됩니다.
- Candidate - ADD CANDIDATE - 내용을 추가하고 SAVE -> object가 추가됩니다.



10.object를 구분하는 방법
- python에서는 object를 표현하는 문자열을 정의할 때는 __str__메소드를 오버라이딩합니다. 예를 들어 위에서 등록한 Candidate의 이름으로 object를 표현하고 싶은 경우,
from django.db import models
class Candidate(models.Model):
    ...
    def __str__(self):
        return self.name #object를 출력하면 name이 보입니다.
로 수정한 후, 브라우저를 새로고침 하면 후보자 이름이 보입니다.



11.SHELL - 직접 DB에 요청을 하는 다른 방법
- shell 실행 방법
windows - powershell에서
manage.py가 있는 폴더로 이동 후
python manage.py shell

#소스
>>> from elections.models import Candidate
>>> Candidate.objects.all()
[<Candidate: 힐러리>, <Candidate: 트럼프>]
>>> new_candidate = Candidate(name = "루비오")
>>> Candidate.objects.all() #아직 "루비오"가 DB에 저장되지 않음.
[<Candidate: 힐러리>, <Candidate: 트럼프>]
>>> new_candidate.save() # 이제 "루비오"가 DB에 저장되었습니다
>>> Candidate.objects.all()
[<Candidate: 힐러리>, <Candidate: 트럼프>, <Candidate: 루비오>]
>>> no1 = Candidate.objects.filter(party_number = 1)
>>> no1
[<Candidate: 힐러리>]
>>> no1[0].party_number
1
>>> no1[0].name
'힐러리'
>>> no1[0].introduction
'미국 최초의 여자 대통령이 되겠습니다.'



12.템플릿 추가하기
- 앱(elecetions) 폴더 아래에 templates 폴더 생성 (C\Code\mysite\elections\templates)
- templates 폴더 아래 elecetions 폴더 생성(C\Code\mysite\elections\templates\elections)
- elecetions 폴더 아래 index.html 파일 생성 (C\Code\mysite\elections\templates\elections\index.html)



13.MVC 패턴(Model View Controller Pattern)
조율, 데이터, 화면으로 프로그램을 구성하는 방식
- Model(데이터) - models.py
  Candidate 클래스의 형식대로 데이터를 DB에 저장, 불러옴
- View(화면) - templates
  화면에 어떤 장면을 보여줄지를 결정
- Controller(조율) - views.py
  Candidate 모델에서 데이터를 읽어, index.html에 전달



14.필드 클래스 설명

- DateTimeField
  date(날짜)와 time(시간)을 나타내며, python의 datetime.datetime 인스턴스로 표현됩니다.

- CharField
  string을 나타내며, 필수 인자 max_length가 있습니다.
  길이가 긴 문자열을 저장하려면 TextField 등을 쓰세요.
  CharField.max_length : 해당 필드의 최대길이를 설정합니다. 예를 들어 5로 설정하면 5글자 이하로만 저장할 수 있습니다.

- IntegerField
  정수를 나타냅니다.
  이 필드는 Django가 지원하는 모든 데이터 베이스에서 -2147483648에서 2147483647까지의 정수를 안전하게 저장합니다.
  더 큰 정수는 BigIntegerField 등을 이용하세요.

- ForeignKey
  한 모델에서 다른 모델을 이용할 때에 씁니다(보통 many-to-one 관계 모델에서 이용합니다).



15.크롤링
- BeautifulSoup 설치
pip install beautifulsoup4

- requests 설치
pip install requests

반응형

'study' 카테고리의 다른 글

[C to Go] 1. Hello World  (0) 2019.01.07
[C to Go] 0. 학습목표  (0) 2019.01.07
파이썬(Python) 기본명령어  (0) 2018.08.27
java.net.SocketException: Broken pipe  (0) 2012.05.17
페이스북에 블로그 썸네일 이미지 변경  (0) 2012.05.16
Comments