<div class="container>
<div class="row mt-5">
<div class="col-12 text-center">
<h1>회원가입</h1>
</div>
</div>
</div>
<div class="container>
<div class="row mt-5">
<div class="col-12 text-center">
<form>
<div class="form-group">
<label for="exampleInputEmail1">Email address</label>
<input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp">
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
</div>
<div class="form-group">
<label for="exampleInputPassword1">Password</label>
<input type="password" class="form-control" id="exampleInputPassword1">
</div>
<div class="form-group 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>
간단하게 회원가입 화면을 만들었다. 이제 이 html 을 장고의 view 와 연결하도록 한다.
from django.shortcuts import render
def register(request):
return render(request, 'register.html')
Django에서의 뷰(View)는 다른 일반 MVC Framework에서 말하는 Controller와 비슷한 역할을 한다.
즉, View는 필요한 데이타를 모델 (혹은 외부)에서 가져와서 적절히 가공하여 웹 페이지 결과를 만들도록 컨트롤하는 역할을 한다.
꼭 봐야하는 링크
http://pythonstudy.xyz/python/article/306-Django-%EB%B7%B0-View
클라이언트가 요청하는 (웹페이지를 보여줘! 또는 회원가입을 시켜줘! 등등) 의 요청 정보가 request 라는 변수를 통해 들어오게 된다.
그러면 render 는 request 요청을 전달 해 주고 동시에 반환해 주고자 하는 html 파일도 인자에 담아서 리턴해 준다.
이제 view 에 만든 register 함수를 url 에 연결해야 한다.
먼저 메인 컨트롤 config/urls.py 를 작성해 보자.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('member/', include('member.urls')),
]
member 앱 안에 urls.py 를 생성해 주고 작성한다.
from django.urls import path
from . import views
urlpatterns = [
path('register/', views.register),
]
그럼 이제 멤버의 회원가입 경로는 http://127.0.0.1:8000/member/register 가 되고, 이 경로에서 아까 views.py 에 작성했던 함수 register 를 실행하게 한다.
from . import views 로 불러오게 한다.
이제 def register() 함수가 실행되면서 html 화면을 불러오게 되는 것이다.