Model
데이터베이스
- 관계형 데이터 베이스: 테이블
장고ORM
- SQL문을 안쓰고도 데이터 조작 및 관리 가능하게 함
Class와 Table
- Class = Table
models.py의 변경사항을 감지하여 파일로 생성:
python manage.py makemigrations
makemigrations에서 생성된 파일을 DB에 적용:
python manage.py migrate
admin 아이디/비번 설정:
python manage.py createsuperuser
models.py
from django.db import models
# Create your models here.
class Blog(models.Model):
title = models.CharField(max_length=100)
created_at = models.DateTimeField(auto_now_add=True)
introduce = models.TextField()
def __str__(self):
return self.title #제목 타이틀로 바꾸기
admin.py
from django.contrib import admin
from .models import *
# Register your models here.
admin.site.register(Blog)
views.py
from django.shortcuts import render
from .models import Blog
from django.http import HttpResponse
# Create your views here.
def blog(request):
blog=Blog.objects.all()
return HttpResponse(blog)
settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
urls.py (blog)
from django.urls import path
from . import views
urlpatterns = [
path('', views.blog, name='blog'),
]
urls.py (session)
from django.contrib import admin
from django.urls import path, include #path 가져오기
urlpatterns = [
path('admin/', admin.site.urls),
path('blog/', include('blog.urls')), #blog path 추가해주기
]
0001_initial.py
# Generated by Django 4.1.7 on 2023-03-23 10:28
from django.db import migrations, models
class Migration(migrations.Migration):
initial = True
dependencies = [
]
operations = [
migrations.CreateModel(
name='Blog',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('title', models.CharField(max_length=100)),
('created_at', models.DateTimeField(auto_now_add=True)),
('introduce', models.TextField()),
],
),
]