티스토리 뷰
파이썬 프로젝트 시 가상 환경을 사용하는 이유는 여러 프로젝트를 하는 데 있어, 분리된 버전 및 패키지 설치 환경을 가질 수 있기 때문에
프로젝트 실행 시 가상 환경을 켜줘야 한다고 한다.
여러 가상 환경 프로그램 중 미니 콘다(miniconda)를 사용하여 장고(django) 튜토리얼을 따라 해 봤다.
가상 환경 생성
가상 환경을 생성하는 명령어로 가상 환경을 생성해준다.
가상 환경 생성 명령어 python 버전이 중요!
$ conda create -n 가상환경이름 python=3.8
실제 실행 과정 )
yujeong@xo-MacBook-Air ~ % conda create -n django_tutorial python=3.8
Collecting package metadata (current_repodata.json): done
Solving environment: done
==> WARNING: A newer version of conda exists. <==
current version: 4.12.0
latest version: 4.13.0
Please update conda by running
$ conda update -n base -c defaults conda
## Package Plan ##
environment location: /Users/yujeong/opt/miniconda3/envs/django_tutorial
added / updated specs:
- python=3.8
The following packages will be downloaded:
package | build
---------------------------|-----------------
certifi-2022.6.15 | py38hca03da5_0 153 KB
libffi-3.4.2 | hc377ac9_4 106 KB
pip-21.2.4 | py38hca03da5_0 1.8 MB
python-3.8.13 | hbdb9e5c_0 10.6 MB
setuptools-61.2.0 | py38hca03da5_0 1011 KB
sqlite-3.38.5 | h1058600_0 1.1 MB
tk-8.6.12 | hb8d0fd4_0 2.9 MB
------------------------------------------------------------
Total: 17.7 MB
The following NEW packages will be INSTALLED:
ca-certificates pkgs/main/osx-arm64::ca-certificates-2022.4.26-hca03da5_0
certifi pkgs/main/osx-arm64::certifi-2022.6.15-py38hca03da5_0
libcxx pkgs/main/osx-arm64::libcxx-12.0.0-hf6beb65_1
libffi pkgs/main/osx-arm64::libffi-3.4.2-hc377ac9_4
ncurses pkgs/main/osx-arm64::ncurses-6.3-h1a28f6b_2
openssl pkgs/main/osx-arm64::openssl-1.1.1o-h1a28f6b_0
pip pkgs/main/osx-arm64::pip-21.2.4-py38hca03da5_0
python pkgs/main/osx-arm64::python-3.8.13-hbdb9e5c_0
readline pkgs/main/osx-arm64::readline-8.1.2-h1a28f6b_1
setuptools pkgs/main/osx-arm64::setuptools-61.2.0-py38hca03da5_0
sqlite pkgs/main/osx-arm64::sqlite-3.38.5-h1058600_0
tk pkgs/main/osx-arm64::tk-8.6.12-hb8d0fd4_0
wheel pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0
xz pkgs/main/osx-arm64::xz-5.2.5-h1a28f6b_1
zlib pkgs/main/osx-arm64::zlib-1.2.12-h5a0b063_2
Proceed ([y]/n)? y
Downloading and Extracting Packages
certifi-2022.6.15 | 153 KB | ##################################### | 100%
tk-8.6.12 | 2.9 MB | ##################################### | 100%
python-3.8.13 | 10.6 MB | ##################################### | 100%
setuptools-61.2.0 | 1011 KB | ##################################### | 100%
libffi-3.4.2 | 106 KB | ##################################### | 100%
pip-21.2.4 | 1.8 MB | ##################################### | 100%
sqlite-3.38.5 | 1.1 MB | ##################################### | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate django_tutorial
#
# To deactivate an active environment, use
#
# $ conda deactivate
가상 환경 실행
가상 환경을 생성하였으니 실행하는 명령어로 생성한 가상 환경을 실행시켜준다.
생성한 가상환경 실행 명령어
% conda activate 가상환경이름
실제 실행 과정 ) 정상적으로 실행됐다면 터미널 앞에 (가상 환경 이름)이 뜬다.
yujeong@xo-MacBook-Air ~ % conda activate django_tutorial
(django_tutorial) yujeong@xo-MacBook-Air ~ %
가상 환경을 실행시켰다면 django 패키지를 설치해야 하는데 djago tutorial에 나와있는 방법으로 설치해준다.
장고 설치
장고 설치 명령어로 가상 환경 내부에 설치해준다. (프로젝트를 생성할 때마다 새로운 가상 환경을 실행하고 장고를 설치해줘야 한다.)
% python -m pip install Django
실제 실행 과정 )
(django_tutorial) yujeong@xo-MacBook-Air ~ % python3 -m pip install Django
Collecting Django
Downloading Django-4.0.5-py3-none-any.whl (8.0 MB)
|████████████████████████████████| 8.0 MB 749 kB/s
Collecting backports.zoneinfo
Downloading backports.zoneinfo-0.2.1.tar.gz (74 kB)
|████████████████████████████████| 74 kB 1.0 MB/s
Installing build dependencies ... done
Getting requirements to build wheel ... done
Preparing wheel metadata ... done
Collecting asgiref<4,>=3.4.1
Downloading asgiref-3.5.2-py3-none-any.whl (22 kB)
Collecting sqlparse>=0.2.2
Using cached sqlparse-0.4.2-py3-none-any.whl (42 kB)
Building wheels for collected packages: backports.zoneinfo
Building wheel for backports.zoneinfo (PEP 517) ... done
Created wheel for backports.zoneinfo: filename=backports.zoneinfo-0.2.1-cp38-cp38-macosx_11_0_arm64.whl size=35856 sha256=8f2eecbe85f950a4e0c51cf577c9a208ecb52f71e683a0773b2d85ce3328d08b
Stored in directory: /Users/yujeong/Library/Caches/pip/wheels/c7/de/cc/c405827ed64f81b56142f1e0075a970b2731b00d21983d54fb
Successfully built backports.zoneinfo
Installing collected packages: sqlparse, backports.zoneinfo, asgiref, Django
Successfully installed Django-4.0.5 asgiref-3.5.2 backports.zoneinfo-0.2.1 sqlparse-0.4.2
내가 만든 가상 환경에 django까지 설치했다면 정상적으로 설치되었다고 뜨지만 혹시 모르니 다시 명령어로 확인해보자.
장고 버전 확인 명령어
(django 튜토리얼에서는 python으로 표기되어있지만 필자는 python3으로 입력해야 명령어가 실행됐다. )
$ python -m django --version
실제 실행 과정 )
(django_tutorial) yujeong@xo-MacBook-Air ~ % python3 -m django --version
4.0.5
장고 프로젝트 생성
cd 명령어로 프로젝트를 생성할 디렉터리로 이동하여 프로젝트를 생성한다.
% django-admin startproject mysite
실제 실행 과정 )
(django_tutorial) yujeong@xo-MacBook-Air ~ % cd Project
(django_tutorial) yujeong@xo-MacBook-Air Project % cd test
(django_tutorial) yujeong@xo-MacBook-Air test % django-admin startproject mysite
튜토리얼에 나와있는 대로 mysite라는 프로젝트를 생성했다면 mysite 디렉토리가 생성되고 내부에 많은 파일들이 있는 것을 확인할 수 있는데, 이 파일마다 수행하는 기능이 다르다. 파일마다 수행하는 기능이 다르므로 자세한 부분은 공식 홈페이지에서 확인 해보자!
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
프로젝트 서버 실행
mysite 프로젝트가 정상적으로 작동하는지 명령어로 확인해 볼 수 있으며, 잘 작동되었다면 http:// 주소로 직접 들어가 확인해 볼 수 있다. (아래 이미지 참고)
이 명령어에서 manage.py를 넣기 때문에 꼭 manage.py가 있는 디렉토리 내에서 명령어를 실행해야 된다.
% python3 manage.py runserver
실제 실행 과정 )
(django_tutorial) yujeong@xo-MacBook-Air mysite % python3 manage.py runserver
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 28, 2022 - 08:32:33
Django version 4.0.5, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
Starting development server at http://127.0.0.1:8000/ 에 나와있는 주소로 들어가서 아래 화면이 보인다면 정상적으로 작동하는 것이다.
설문조사 앱 만들기
위에서 만든 mysite 프로젝트에 polls 라는 설문조사 어플리케이션을 추가해보자.
$ python3 manage.py startapp polls
실제 실행 과정 )
(django_tutorial) yujeong@xo-MacBook-Air mysite % python3 manage.py startapp polls
위 명령어를 입력하면 mysite 프로젝트 디렉토리 내부에 polls 디렉터리가 생성된 것을 볼 수 있는데,
polls 파일을 열면 mysite 내부와 비슷한 것을 볼 수 있다.
첫 번째 뷰 작성하기
이제 튜토리얼에 나와있는 첫 번째 뷰를 만들어보자. (내부 파일은 작성은 터미널이 아닌 vscode에서 작성하여 실제 실행 과정은 생략했다.)
먼저 polls/view.py 파일을 열어 다음과 같은 파이썬 코드를 입력한다.
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
다음은 polls 디렉토리 내부에 urls.py 파일을 만들어 코드를 입력한다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
최상위 폴더인 mysite 디렉터리에서 manage.py 파일에 include() 함수를 사용하여 일부 코드를 추가한다.
include() 함수는 다른 URLconf들을 참조할 수 있도록 도와줍니다. Django가 함수 include()를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달한다고 한다.
from django.contrib import admin
from django.urls import include, path # 새로 import 추가
urlpatterns = [
path('polls/', include('polls.urls')), # 새로 추가한 코드
path('admin/', admin.site.urls),
]
코드를 추가하고 기존 http://127.0.0.1:8000/경로로 접속하게 되면 오류가 나고 polls를 붙여서 입력하면 polls/view.py에 정의했던 index함수 내부의 return 값인 HttpResponse("Hello, world. You're at the polls index.")가 화면에 나타난다.
내용 전문 및 출처 -djangoproject
'study > Django' 카테고리의 다른 글
Django - MtoM Field 없이 구현 (0) | 2022.07.06 |
---|---|
westarbucks 만들기 - models.py (0) | 2022.07.05 |
Django tutorial 따라하기 4 (0) | 2022.06.30 |
Django tutorial 따라하기 3 (0) | 2022.06.29 |
Django tutorial 따라하기 2 (0) | 2022.06.29 |
- Total
- Today
- Yesterday
- 커맨드 객체
- Python
- 회원 로그인
- authenticate()
- git 공부
- django-environ
- musma
- Magazine K
- 환경 변수 설정
- 웹페이지
- 톰캣
- django.contrib.auth
- 암호화
- git공부
- django
- python3
- 한글 형태소 분석기
- API
- Spring
- 회원가입
- Django tutorial
- 검색 결과 내 페이지네이션
- 혼자 공부하는 파이썬
- git
- 면접을 위한 CS 전공 지식 노트
- 디자인 패턴
- 배열
- Java
- error: failed to push some refs to 'https://github.com/
- path variable
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |