Create: 생성
Read: 읽기
Update: 수정
Delete: 삭제
class Blog(models.Model):
title = models.CharField(max_length=200)
created_at = models.TimeField(auto_now_add=True)
updated_at = models.TimeField(auto_now=True)
body = models.TextField()
def __str__(self):
return self.title
블로그 생성 후 터미널에 데이터 전송
python manage.py makemigrations
python manage.py migrate
admin.py
모델 생성 후 admin에 등록
from .models import Blog
admin.site.register(Blog)
python manage.py createsuperuser
python manage.py runserver
http://127.0.0.1:8000/admin/
접속 후 생성한 아이디, 비밀번호 입력
admin 페이지에 들어가서 Blog 게시글을 추가할 수 있음
def new(req):
return render(req, 'new.html')
path('new/', myapp.views.new, name='new'),
<a href="{% url 'new' %}>새 글쓰기</a>
<h1>new</h1>
<form action="{% url 'create' %}" method="POST">
{% csrf_token %}
<div>
<label for="title">제목</label><br>
<input type="text" id="title" name='title'>
</div>
<div>
<label for="content">내용</label><br>
<textarea name="body" id="body" cols="30" rows="10"></textarea>
</div>
<input type="submit" value="글쓰기">
</form>
from django.shortcuts import render, redirect
def create(req):
if(req.method == 'POST'):
post = Blog()
post.title = req.POST['title']
post.body = req.POST['body']
post.save()
return redirect('index')
urlpatterns = [
path('create/', myapp.views.create, name='create'),
]
from .models import Blog
def index(req):
blogs = Blog.objects
return render(req, 'index.html', {'blogs' : blogs})
{% for blog in blogs.all %}
<h1>{{blog.title}}</h1>
<p>{{blog.created_at}}</p>
<p>{{blog.body}}</p>
{% endfor %}