메인 프로젝트나 사이드 프로젝트 or 현업에서는 파일 구조나 세팅이 다릅니다...아마?
(글쓴이는 PyCharm입니다.)
- Start -
pyenv virtualenv {version} {env_name}
pyenv local {env_name}
poetry init <- 새로운 Python 프로젝트를 위한 pyproject.toml 파일을 생성하는 데 사용됩니다.
-django 설치-
poetry add django
💡 Django 설치시 원하는 버전설치를 원할시 -> poetry add django=={version}
-Django 프로젝트 생성-
django-admin startproject {project_name} .
⚠️ " . "이 없을 경우 처음 생성한 폴더에 폴더가 하나 더 생기고 거기에 프로젝트 디렉토리가 생성이 됩니다.
-서버 실행하기-
python manage.py runserver
[http://127.0.0.1:8000/] <- 본인만 볼 수 있는 서버 - 클릭 or 복붙 -
서버 실행 취소는 Ctrl + C
⚠️ 서버 실행시 빨간 글씨가 보일텐데 그건 마이그레이션을 진행을 해야 없어진다.


- config 폴더 -
__init__.py: 파이썬 패키지임을 나타내는 파일
asgt.py: ASGI 설정 파일
settings.py: 프로젝트 설정 파일
urls.py: URL 라우팅 설정
wsgi.py: WSGI 설정 파일
----------------------------------------------------------------------------------------------------
- 루트 폴더 파일들 -
.python-version: Python 버전 관리 파일
db.sqlite3: SQLite 데이터베이스 파일
manage.py: Django 프로젝트 관리 스크립트
poetry.lock: Poetry 의존성 잠금 파일
pyproject.toml: 프로젝트 메타데이터 및 의존성 정의 파일
# urls.py
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
def index(request):
return HttpResponse("hello")
urlpatterns = [
path('admin/', admin.site.urls),
path('', index),
]
💡 path('', index),
' '안에 경로를 입력을 해주는데 빈 상태로 입력을 한다면 기본 화면 즉 웹사이트 진입시 초기화면이라고 생각하면 됩니다.
뒤에 index의 경우 함수명을 입력을 해서 연결을 해줘야 어떤 함수에대한 경로인지 + 어떠한 로직이 적용되는지도 알 수 가 있습니다.

⚠️ 만약 404 -Page Not Found Error-
이러한 에러가 뜰 경우 내가 주소창에 입력한 경로와 urls.py에 입력한 경로가 다르다는 거 이기에 경로만 입력해주면 간단하게 해결이 됩니다.
Don't Worry -
💡 추가로 경로에 숫자(int)를 넣어서 페이지를 표시, 페이지별 경로 이동이 가능하다
# urls.py
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
def blog(request, num):
blog_page = f"blog {num}번 페이지 입니다."
return HttpResponse("hello")
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/<int:num>/', blog),
]

💡 문자형(str)도 가능합니다. 하지만 - path('blog/', blog), - 같이 문자형으로 같은 문자가 들어가면 위에 경로에서 멈출 수 있어서 str사용은 왠만해서는 자제하는 것이 좋습니다.