❤️ github 주소 : https://github.com/qkralswl689/Django/tree/main/first-django
클라이언트 -> urls.py -> view -> model or template(선택적) -> view -> 클라이언트
mac 환경에서 실행했을경우의 명령어이다(vscode에서 터미널을 생성하여 아래 명령어를 순서대로 입력한다)
1.가상환경 설치 : python3 -m venv venv
2.가상환경 접속 : source venv/bin/activate
3.장고 설치 : pip3 install django
4.장고 프로젝트 생성 : django-admin startproject confg .
Django를 생성하면 생기는 폴더, 파일 2가지 : 1.config 폴더 2.manage.py 파일
- manage.py : Django한테 명령어를 사용할 수 있도록 하는 파일
- config
- init.py : 파이썬 패키지라는것을 알려주는 파일
- asgi.py / wsgi.py : 배포할 때 사용하는 파일
- urls.py : url을 정의하는 파일
- settings.py : Django가 실행되는데 있어 필요한 설정값 들이 들어가있는 파일 * 중요!
명령어 : django-admin startapp demos
3-2.앱의 구성
앱을 생성하면 생기는 폴더, 파일 : 1.migrations 폴더 2.admin.py 3.app.py 4models.py 5.tests.py 6.views.py
- migrations : models.py 를 사용할 때 기록을 남기는것곳
- admin.py : 관리자 인터페이스
- app.py : app의 이름 등 정보를 관리
- models.py : 데이터를 정의하고 정의된 데이터를 기준으로 DB를 생성한다
- tests.py : 테스트코드 작성하는곳
- views.py : 실제로 작동하는 기능을 작성하는곳
app을 생성하면 config 폴더의 settiong.py에 추가해야한다
# 생략..
# 뒤에 ","를 꼭 붙혀줘야한다
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'demos',
]
# 생략..
demos 폴더에 templates폴더를 추가한후 calculator.html 파일을 생성한다
<!DOCTYPE html>
<html lang="en">
<head>
</head>
<body>
<h1>뚱스 계산기!</h1>
<form action="">
<input type="text" name="num1">
<select name="operators">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="num2">
<input type="submit">
<br>
결과값 : {{result}}
</form>
</body>
</html>
views.py에 기능을 작성한다
from django.http import HttpResponse
from django.shortcuts import render
from django.http import HttpResponse
# request 를 꼭 입력해줘야한다 -> Django의 약속
def calculator(request):
# 입력된 데이터 가져오기
num1 = request.GET.get('num1')
num2 = request.GET.get('num2')
operators = request.GET.get('operators')
# 계산
if operators == '+':
result = int(num1) + int(num2)
elif operators == '-':
result = int(num1) - int(num2)
elif operators == '*':
result = int(num1) * int(num2)
elif operators == '/':
result = int(num1) / int(num2)
else:
result = 0
# 계산된 값 html에 보내주기
return render(request, 'calculator.html', {'result': result})
config폴더의 url.py에 url을 추가해준다
from django.contrib import admin
from django.urls import path
from demos.views import calculator
urlpatterns = [
path('admin/', admin.site.urls),
path('calculator/', calculator)
]
터미널에 서버 실행 명령어를 입력한다
장고 서버 실행 : python3 manage.py runserver