Faker
가짜 데이터들을 생성해주는 pip패키지인 Faker를 알아보자
이런식으로 Faker를 import해 가짜 데이터를 생성할 수 있다 (출력을 위해 print문에 넣었다)
from faker import Faker
myfake = Faker()
# Faker의 매소드를 통해 어떤 종류의 가짜데이터를 뽑아낼지 결정 가능
print(myfake.name())
print(myfake.address())
print(myfake.text())
print(myfake.state())
print(myfake.sentence())
print(myfake.random_number())
‘ko_KR’을 넣으면 한글이 되지만 name과 address만 생성할 수 있다
myfake = Faker('ko_KR')
파일에 seed번호를 넣으면,,
from faker import Faker
myfake = Faker('ko_KR')
# Faker의 매소드를 통해 어떤 종류의 가짜데이터를 뽑아낼지 결정 가능
Faker.seed(1)
print(myfake.name())
print(myfake.address())
print(myfake.random_number())
views.py에서 간단한 for문과 조합하면 DB에 데이터를 대량 생산/삭제할 수 있다
for i in range(0,10):
blog=Blog()
blog.title=myfake.name()
blog.body=myfake.sentence()
blog.save()
이런식으로 .save() 메소드나 .delete() 메소드와 사용
* 필수적인 내용은 아니기 때문에 참고만 해두자!
Form 이론
form을 html 태그로 하나하나 만들지 말고 Django 기능을 활용해 한 번에 만들어보자
모델에 일부만 입력 받고 나머지는 자동으로 함수에서 처리하려면,,
* .is_valid는 모든 입력값이 잘 입력되었는지 확인해주는 메소드함수
Form 실습
form.py에 기능과 model을 import해주고 form으로 받아올 fields도 지정해준다
from django.forms import fields
from .models import Blog
class BlogPost(forms.ModelForm):
class Meta:
model = Blog
fields = ['title', 'body']
해당 파일을 연결할 함수를 실행할 url을 urls.py에 미리 추가해주자
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('<int:blog_id>', views.detail, name="detail"),
path('new/', views.new, name="new"),
path('create/', views.create, name="create"),
path('newblog/', views.blogpost, name="newblog"),
]
views.py에 import해주고,,
from .form import BlogPost
함수는 이렇게 작성한다
def blogpost(request):
# 1. 입력된 내용을 처리하는 기능 -> POST 방식
if request.method == 'POST':
form = BlogPost(request.POST)
if form.is_valid(): # 모든 입력 공간이 제대로 입력됐다면
post = form.save(commit=False) # 아직 저장하지 않은 상태로 모델 객체 반환
post.pub_date = timezone.now() # 따로 자동으로 처리
post.save() # 저장
return redirect('home')
# 2. 빈 페이지를 띄워주는 기능 -> GET 방식
else:
form = BlogPost()
return render(request, 'new.html', {'form':form})
html 파일은 이런식으로 form을 불러와준다
{% extends 'base.html' %}
{% block contents %}
<br>
<div class="container">
<form method="POST">
{% csrf_token %}
<table>
{{form.as_table}}
</table>
<br>
<input class="btn btn-dark" type="submit" value="제출하기">
</form>
</div>
{% endblock %}
이런식으로 간결하게 form과 html 파일을 관리할 수 있다!
본 내용은 멋쟁이사자처럼의 '9기 운영진 교육'을 바탕으로 작성되었습니다.
'Back-end > Django' 카테고리의 다른 글
[HUFS/HUFStudy] #8 PostgreSQL 연동, Heroku 배포 (10) | 2021.08.06 |
---|---|
[HUFS/HUFStudy] #7 소셜로그인, API (4) | 2021.08.02 |
[HUFS/HUFStudy] #5 로그인/회원가입, Pagination (8) | 2021.07.28 |
[HUFS/HUFStudy] #4 Path Converter, 글쓰기, Static/Media, 템플릿 상속, URL (2) | 2021.07.18 |
[HUFS/HUFStudy] #3 Model/Admin, Queryset/Method (0) | 2021.07.14 |