티스토리 뷰
pip install django로 장고를 설치한 후
1
|
pip install django
|
django-admin.py로 장고 프로젝트를 시작할 수 있다.
1. python manage.py startproject <프로젝트명>
startproject 뒤에 개발하고자하는 프로젝트 폴더명을 입력한다.
2. cd <프로젝트명>
만든 프로젝트로 폴더 이동한다.
3. 프로젝트 안에는 장고 프로젝트를 runserver하거나, 관리자를 추가하는 등의 설정이 가능한 manage.py 파일이 있다.
python manage.py <앱명>
시작할 앱의 이름을 입력하여 앱을 만든다.
4. python manage.py runserver
장고 프로젝트를 실행한다.
장고의 기본 포트는 8000번이고, 만약 포트 번호를 1234로 바꾸고자 한다면 python manage.py runserver 0.0.0.0:1234 이렇게 입력하면 된다!
이제 크롬에서 localhost:8000을 들어가면 로켓발사 모양이 나온다. 장고를 처음시작했을 때 나오는 화면이다.
startproject로 만든 프로젝트 폴더에 들어오면 내가 만든 app폴더, project폴더, 그리고 장고에서 지원하는 데이터베이스 sqlite3, manage.py가 있다.
app 폴더에서 자주 쓰이는 파일은, views.py, models.py이고,
이 외에 템플릿(html파일), 이미지파일, css파일, js파일 등등을 저장할 것이다.
views.py는 url과 템플릿을 연결하여 무엇을 보여줄 것인지 코딩하는 부분이고,
models.py는 데이터베이스에 사용할 테이블을 작성한다고 생각하면 된다.
project에서 자주쓰이는 파일로는, 이 장고프로젝트를 관리하는 settings.py와, app/views.py에 작성한 url을 연결할, urls.py가 있다.
먼저, project의 settings.py를 열어,
ALLOWED_HOSTS = ['*'] // []으로 되어있떤 부분을 ['*']으로 변경
INSTALLED_APPS 에 'app'을 추가했다.
- ALLOWED_HOSTS는 이 사이트에 접속가능하게할 ip를 입력하면 되는데, '*'를 입력하면 모두 접속이 가능해진다.
- INSTALLED_APPS에는 내가 만든 앱의 이름을 추가하면 된다.
- DEBUG = True 는 디버깅을 할 것인지 말것인지 설정하는 부분인데, DEBUG 를 True로 해놓으면, 사용자가 url을 잘못입력했을때, 추후에 내가 설정하는 모든 url이 노출되어 보안에 취약하게 되니, 테스트 할때만 DEBUG를 True로 해놓고, 나중에 정식으로 사이트를 열 떄에는 DEBUG를 False로 바꾸어야 한다.
이제 app/views.py에 테스트로 몇가지 페이지를 띄워보려한다.
from django.http import HttpResponse, JsonResponse
from django.shortcuts import redirect
를 추가했다.
HttpResponse는 내가 작성한 글을 그대로 페이지에 띄우는 것이고,
JsonResponse는 Json형태 ( 파이썬의 딕셔너리 형태 )를 페이지에 띄우는 것이고,
redirect는 다른 페이지로 바로 이동을 의미한다.
이 세가지를 테스트해볼 함수로 httpresponse, jsonresponse, _redirect를 만들었다.
그리고, project/urls.py에서는 이 함수를 url에 연결하면 된다.
from <앱명> import views 를 입력하여 views.py를 불러온다.
urlpatterns에
path('<url>', views.<views에서 입력한 함수명>)을 추가하면 url이 만들어진다.
파일을 저장하면, python manage.py runserver로 띄워놨던 게 자동으로 재실행되고, 내가 추가한 url을 localhost:8000/<url>로 접속하면 된다!
아래는 httpresponse에 hello?를 입력한 것이 정상적으로 출력된 모습이다.
아래는 jsonresponse에 {"test":"hello?"}를 입력한 것이 정상적으로 출력된 모습이다.
localhost:8000/_redirect를 입력해도, 한 1초도 안되어서 jsonresponse로 페이지이동을 하게 된다.
urls.py에 이미 작성되어있는 admin 페이지는 localhost:8000/admin으로 들어가면 아래와 같이 뜨게 되는데, 추후에 models.py에서 모델을 작성하면서 이 어드민 페이지에서 데이터베이스를 관리할 수 있다.
튜토리얼1의 마지막으로, app/views.py에서 return render(request, 'template.html')로 , 템플릿을 연결해 놓은 부분이 있는데, localhost:8000/template으로 들어가면, template을 찾을 수 없다고 나온다.
이부분은 app 폴더에서 templates 폴더를 생성하고, 그 안에 template.html을 만들면 된다.
temlate.html안에는 hello????를 작성해놨다.
장고를 재실행하고 localhost:8000/template으로 들어가면, hello???가 입력된 template.html이 정상적으로 뜨게 된다.
튜토리얼 2에서는 템플릿에 내가 원하는 다양한 변수들을 전달하는 방법,
템플릿에서 사용자가 입력한 값을 views.py로 받아오는 방법 등을 작성할 것이다.
'프로그래밍 > Python' 카테고리의 다른 글
[크롤링] 네이버 카페 크롤링(파싱) 하기 - 카페 소개 (1) | 2021.04.24 |
---|---|
파이썬 Scripts 설치경로 (0) | 2021.04.20 |
[oracleDB] python cx_Oracle 오라클DB 연결 (0) | 2021.04.14 |
[mongoDB] pymongo db.collection.find() 검색조건 (0) | 2021.04.14 |
[Django] 'staticfiles' is not a registered tag library 오류해결 (0) | 2021.03.22 |