JIMINOTE

[Django] 회원가입 Python, HTML, DB(SQLite) 본문

공부

[Django] 회원가입 Python, HTML, DB(SQLite)

김짐인 2020. 8. 22. 14:29

 

* VSCode를 사용하여 코딩.

 

* MTV패턴

- Model -> 데이터 저장 형태 설정

- Templete ->HTML(유저에게 보여지는 화면)

- View -> 함수 작성(데이터 처리)

 

 

 

 

1. App 생성

Python manage.py startapp article

 

 

 

2. board/setting.py

'article', #추가

 

3. templete/signup.html

{% extends 'base.html' %}
{% block content %}

<div class="jumbotron">
  <div class="container text-center">
    <form method="post" action="/signup/">
    {% csrf_token %}
    <div class="form-group">
      <label for="email">Email:</label>
      <input type="text" class="form-control" id="email" name="email">
    </div>
    <div class="form-group">
      <label for="pwd">Password:</label>
      <input type="password" class="form-control" id="pwd" name="pwd">
    </div>
    <div class="form-group">
      <label for="name">Name:</label>
      <input type="text" class="form-control" id="name" name="name">
    </div>
    <button class="btn btn-primary btn-block" id="signup">Sign Up</button>
    </form>
  </div>
</div>
{% endblock %}

 

실행화면

 

 

4. article/model.py

-데이터베이스에 저장할 데이터 형식 지정

from django.db import models

class User(models.Model):
	email = models.CharField(max_length=50)
	pwd = models.CharField(max_length=100)
	name = models.CharField(max_length=10)

 

 

5. Migration

-모델의 생성,변경 히스토리 관리 (DB설계 시 필수)

 

Python manage.py makemigrations

Python manage.py migrate

 

 

 

 

6. board/view.py

from django.http import HttpResponseRedirect
from article.models import User

def signup(request):
  if request.method == 'POST': # 회원정보 저장
    email = request.POST.get('email')
    name = request.POST.get('name')
    pwd = request.POST.get('pwd')
    user = User(email=email, name=name, pwd=pwd) user.save()
    return HttpResponseRedirect('/index/')
  return render(request, 'signup.html')

 

 

7.board/urls.py

path('signup/', views.signup), #추가