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페이지로 가서 확인해 볼 수 있다.
'Programming > Django' 카테고리의 다른 글
클래스형 뷰를 사용한 CRUD(2)-Bootstrap을 이용한 pagination (0) | 2021.06.23 |
---|---|
클래스형 뷰를 사용한 CRUD(1)-CRUD 구현 (0) | 2021.06.23 |
Django API 서버 만들기 (0) | 2021.04.13 |
REST API 서버 - 기본 세팅 (0) | 2021.04.11 |
로그인&로그아웃 (0) | 2020.08.26 |