본문 바로가기
Developer/Django

[Django] URL 연결하기

by Doony 2020. 11. 25.

오늘도 짧고 간단한 포스팅을 하겠습니다.
웹을 만들다보면 필요한 가장 필수적인 부분으로, URL을 연결하는 방법에 대해 알아보겠습니다.


예를 들어, 회원가입하는 페이지를 만들고 싶다면, http://~~~~~/signup 과 같은 방식으로 url을 만들어야합니다. 장고에서 url을 연결하는 방법은 아래 단계에 따라 진행하시면 됩니다.


프로젝트 url 설정

프로젝트에 있는 url 파일을 아래와 같이 수정합니다.


1
2
3
4
5
6
7
8
from django.contrib import admin
from django.urls import path, include
 
urlpatterns = [
    path('admin/', admin.site.urls),
    path('users/', include('users.urls')) # 유저 앱의 url 
]
 
cs

두번째 줄에 보면, 만든 앱의 url을 추가해준 것을 볼 수 있습니다. 즉, 앱에 속한 url들은 앱 내의 url 파일 수정을 통해 변경할 수 있습니다. 이렇게 진행해야 좀 더 관리측면에서 편한 것 같습니다.


앱의 urls.py 파일 생성

위에서 언급한 urls.py를 만들어야합니다. 만든 앱 폴더에 urls.py 파일을 만들고, 다음과 같이 생성합니다. 참고로 저는 회원가입 페이지를 만들 것이므로, 이름은 signup으로 모두 통일시켰습니다.


1
2
3
4
5
6
7
8
from django.urls import path
from . import views
 
 
urlpatterns = [
    path('signup/', views.signup)
]
 
cs

views에서 signup 함수 만들기

위에서 선언한 views의 signup 함수를 만들어야합니다. 즉, 앱의 views.py에 들어가 다음과 같이 수정합니다.

1
2
3
4
5
from django.shortcuts import render
# Create your views here.
 
def signup(request):
    return render(request, 'signup.html')
cs

코드를 보시면 request를 받고 signup.html에 연결해놓은 것을 알 수 있습니다. 이제 마지막으로 signup.html 파일을 수정하면 됩니다.


signup.html 파일 수정

이 부분은 bootstrap의 form에서 그대로 긁어왔습니다. 부트스트랩을 사용하면 다양한 형태의 템플릿을 손쉽게 적용할 수 있습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>회원가입</title>
 
<!--    Bootstrap 초기화 부분 -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
    <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
</head>
<body>
    <form>
      <div class="form-group">
        <label for="username">사용자명</label>
        <input type="text" class="form-control" id="username" aria-describedby="emailHelp" placeholder="이름을 입력하세요.">
      </div>
      <div class="form-group">
        <label for="password">비밀번호</label>
        <input type="password" class="form-control" id="password" placeholder="비밀번호를 입력하세요.">
      </div>
 
      <button type="submit" class="btn btn-primary">등록</button>
    </form>
</body>
</html>
cs

이렇게 url을 연결하는 방법에 대해 알아봤습니다. 이제 서버를 실행하고, 저 같은 경우 다음 주소로 접근하면 페이지를 띄울 수 있습니다.


http://127.0.0.1:8000/users/signup/


댓글