[멋쟁이사자처럼 11기] 4회차: Django 실습

젠니·2023년 12월 3일

Likelion-11th

목록 보기
4/8

Model

데이터베이스

  • 관계형 데이터 베이스: 테이블

장고ORM

  • SQL문을 안쓰고도 데이터 조작 및 관리 가능하게 함

Class와 Table

  • Class = Table

Migrations 방법

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()),
            ],
        ),
    ]

*멋사 포스팅은 티스토리에 업로드 된 글의 백업입니다.
출처: Jenvelop log

profile
젠니의 개발 라이푸우

0개의 댓글