장고 구조
setting.py
장고 전체의 환경설정
urls.py
장고 전체의 api 담당
views.py
함수 담당
orm 데이터 베이스와 소통하는 방법
객체 클래스로 데이터를 저장하는 형태
django-admin startapp 앱이름
앱을 만드는 명령어
앱을 만들고 setting.py에서 INSTALLED_APPS에다가 추가해줘야함
데이터 베이스 변경할 때마다
장고에게 데이터 베이스 만들었다고 알려주기
python manage.py makemigrations
데이터 베이스 적용하기
python manage.py migrate
관리자 계정 생성하기
python manage.py createsuperuser
ForeignKey()
다른 데이터 베이스에서 내용을 가져온다 id
path('',include('앱이름.urls'))
앱의 url과 전체의 앱 url이 연결됨
각각 앱에서 views와 urls 를 연결하고 그걸 전체 앱에 연결해주는 것 같다
피라미드 모양처럼
{% csrf_token %}폼 형식
보안을 위해서 토큰
def sign_up_view(request):
if request.method == 'GET':
return render(request, 'user/signup.html')
elif request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
if password != password2:
return render(request, 'user/signup.html')
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
if request.method 로 받은 형식으로 리턴 다르게
request.POST.get('username', None)로 각각 변수 지정
if password != password2 비밀번호 다르면 재설정
new_user = UserModel() 유저 인스턴스 생성
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
정보 저장
return redirect('/sign-in') 다른 url로 이동
세션
사용자 정보를 저장하는 공간