Programming/Django

Django 입력 받기

코딩하는 포메라니안 2021. 5. 31. 13:54

1. 클래스 생성

데이터를 저장할 틀을 만든다.

#app/models.py
from django.db import models
from django.core.validators import validate_email

# Create your models here.
class User(models.Model):
    name = models.CharField(max_length=20)
    phone_number = models.CharField(max_length=50)
    email = models.EmailField(max_length = 50, blank=True, null=True)

    #객체 이름 = 사용자 이름
    def __str__(self):
        return self.name

django 서버에게 데이터 형식을 만들었음을 알린다.

$ python manage.py makemigrations
$ python manage.py migrate

 

2. admin 페이지 사용

우리가 생성한 데이터를 admin페이지에서 간단하게 보기 위해서 이 단계를 수행한다.

#app/admin.py
from django.contrib import admin
from .models import User

admin.site.register(User)
$ python manage.py createsuperuser

 

3. 입력받을 페이지 생성

 

html 파일을 하나 생성하여 원하는 페이지를 구성한다.

<form> = 사용자에게 입력을 받을 형식, urls.py에서 name = create인 주소와 연결된 view를 실행시킨다.

<!--app/templates/home.html-->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Home</title>
</head>
<body>
    hello
    <div class = "container">
        <form action = "{% url 'create' %}">
            이름:<input type="text" name="name">
            <br>
            전화번호:<input type="text" name="phone_number">
            <br>
            이메일 :<input type="email" name="email">
            <br>
            <input type="submit" value="제출">
        </form>
    </div>
</body>
</html>

 

사용자가 볼 수 있도록 url으로 view를 연결시켜준다.

#app/urls.py
#app폴더 내에 urls.py를 직접 생성
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
    path('/create', views.create, name='create'),
]
#project/urls.py
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('landapp.urls')),
]
#app/views.py
from django.shortcuts import render

def home(request):
    return render(request, 'home.html')

def create(request):
    user = User() #빈 객체 생성
    user.name = request.GET['name']
    user.phone_number = request.GET['phone_number']
    user.email = request.GET['email']
    user.save()

    return redirect('/')

 

4. 결과

$ python manage.py runserver

다음과 같이 입력해서 [제출] 버튼을 누른 후, admin페이지로 가서 확인해 볼 수 있다.