<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js"
integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js"
integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous">
</script>
</head>
<body>
<div class="container">
<div class="row mt-5">
<div class="col-12 text-center">
<h1>회원가입</h1>
</div>
<div class="row mt-5">
<div class="col-12">
<form>
<div class="mb-3">
<label for="exampleInputEmail1" class="form-label">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1"
aria-describedby="emailHelp">
<div id="emailHelp" class="form-text">We'll never share your email with anyone else.</div>
</div>
<div class="mb-3">
<label for="exampleInputPassword1" class="form-label">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="exampleCheck1">
<label class="form-check-label" for="exampleCheck1">Check me out</label>
</div>
<button type="submit" class="btn btn-primary">Submit</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
views.py로 장고파일과 연결
admin urls.py에 추가
fcuser에 urls.py 생성
주소/fcuser/register
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-BmbxuPwQa2lc/FVzBcNJ7UAyJxM6wuqIj61tLrc4wSX0szH/Ev+nYRRuWlolflfl" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.bundle.min.js"
integrity="sha384-b5kHyXgcpbZJO/tY9Ul7kGkf1S0CWuKcCD38l8YkeH8z8QjE0GmW1gYU5S9FOnJ0" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.6.0/dist/umd/popper.min.js"
integrity="sha384-KsvD1yqQ1/1+IA7gi3P0tyJcT3vR+NdBTt13hSJ2lnve8agRGXTTyNaBYmCR/Nwi" crossorigin="anonymous">
</script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta2/dist/js/bootstrap.min.js"
integrity="sha384-nsg8ua9HAw1y0W1btsyWgBklPnCUAFLuTMS2G72MMONqmOymq585AcH49TLBQObG" crossorigin="anonymous">
</script>
</head>
<body>
<div class="container">
<div class="row mt-5">
<div class="col-12 text-center">
<h1>회원가입</h1>
</div>
<div class="row mt-5">
<div class="col-12">
<!-- 현재 페이지로 데이터를 보내기 때문에 . or 생략 -->
<form method="POST" action=".">
<!-- django에서 form을 전달할 때 꼭 해줘야할 설정, form안에 꼭 작성 -->
<!-- form은 데이터를 서버에 전달하는데 지금 우리가 사용하는것처럼 우리사이트에서만 사용하면 문제가 없지만
몇몇 사람들이 악용하기 때문에 다른 웹사이트에서 전송하기 때문에 방지하기 위해서 크로스 도메인을 방지. 암호화된 키를 숨겨서 키가 없으면 잘못된 요청으로인식 -->
{% csrf_token %}
<div class="mb-3">
<label for="username" class="form-label">사용자 이름</label>
<input type="text" class="form-control" id="username" placeholder="사용자 이름" name="username">
</div>
<div class="mb-3">
<label for="password" class="form-label">비밀번호</label>
<input type="password" class="form-control" id="password" placeholder="비밀번호"
name="password">
</div>
<div class="mb-3">
<label for="re-password" class="form-label">비밀번호 확인</label>
<input type="password" class="form-control" id="re-password" placeholder="비밀번호 확인"
name="re-password">
</div>
<button type="submit" class="btn btn-primary">등록</button>
</form>
</div>
</div>
</div>
</div>
</body>
</html>
from django.shortcuts import render
from .models import Fcuser
# Create your views here.
def register(request):
if request.method == 'GET':
return render(request, 'register.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
re_password = request.POST.get('re-password', '')
fcuser = Fcuser(
username=username,
password=password
)
fcuser.save()
return render(request, 'register.html')
# 기본적으로 template폴더를 보기에 바로 작성 가능
# 만약에 template폴더 내부에 폴더를 생성한 다음에 파일을 만든다면
# foldername/register.html
# return render(request, 'register.html')
from django.shortcuts import render
from .models import Fcuser
# 경고문을 보내기 위한 패키지
from django.http import HttpResponse
# Create your views here.
def register(request):
if request.method == 'GET':
return render(request, 'register.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
re_password = request.POST.get('re-password', '')
# 비밀번호와 비밀번호 확인이 다르면 경고문자 보내기!
if password != re_password:
return HttpResponse('비밀번호가 다릅니다!')
else:
fcuser = Fcuser(
username=username,
password=password
)
fcuser.save()
return render(request, 'register.html')
# 기본적으로 template폴더를 보기에 바로 작성 가능
# 만약에 template폴더 내부에 폴더를 생성한 다음에 파일을 만든다면
# foldername/register.html
# return render(request, 'register.html')
from django.shortcuts import render
from .models import Fcuser
# 경고문을 보내기 위한 패키지
from django.http import HttpResponse
# Create your views here.
def register(request):
if request.method == 'GET':
return render(request, 'register.html')
elif request.method == 'POST':
username = request.POST.get('username', '')
password = request.POST.get('password', '')
re_password = request.POST.get('re-password', '')
# 전송할 데이터
res_data = {}
# 비밀번호와 비밀번호 확인이 다르면 경고문자 보내기!
if password != re_password:
# 다른 페이지로 가기 때문에 불편함
# return HttpResponse('비밀번호가 다릅니다!')
res_data['error'] = '비밀번호가 다릅니다.'
else:
fcuser = Fcuser(
username=username,
password=password
)
fcuser.save()
return render(request, 'register.html', res_data)
# 기본적으로 template폴더를 보기에 바로 작성 가능
# 만약에 template폴더 내부에 폴더를 생성한 다음에 파일을 만든다면
# foldername/register.html
# return render(request, 'register.html')