현제의 현재이야기

Django 명령어 및 순서 복습 본문

Django

Django 명령어 및 순서 복습

현재의 현제 2022. 7. 1. 14:19

폴더 만들고 폴더 불러오기

가상환경 만들기 python3 -m venv myvenv

가상환경 실행 source myvenv/bin/activate

장고 설치 pip install django

프로젝트 만들기 django-admin startproject myproject

앱 만들기 django-admin startapp blog

앱 settings.py 에 등록

models.py에 (models.Model) 상속

테이블 적고 python manage.py makemigrations

python manage.py migrate

 

def __str__(self): return self.title

 

def summary(self): return self.body[:100] 잊지말기

 

슈퍼 유저 python manage.py createsuperuser

모델 등록 from .models import Blog  : 같은 폴더 내 models 모듈에서 Blog를 import

admin.site.register(Blog)

----------

늘 templates를 생성하면 views.py 와 urls.py를 수정

왜냐하면 실제로는 반대로 실행되기 때문에

실행과정 : 

from django.contrib import admin
from django.urls import path
from blog.views import *

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', home, name='home')
]

blog.views에 있는 것을 모두 import하고 path의 home이 밑에 있는 views의 함수 이름, 그리고 경로의 이름을 뒤에 적는다.

def home(request):
    blogs = Blog.objects.all()
    return render(request, 'home.html', {'blogs': blogs})

views의 해당 함수로 이어지면 그 함수는 요청을 받아들여서 home.html로 인도해준다.

from .models improt Blog를 해놓았기 때문에 Blog.objects.all() 을 통해서 models에 Blog 클래스를 불러올 수 있음.

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>BLOG</title>
    <style>
      body {
        text-align: center;
      }
    </style>
  </head>
  <body>
    <h1>Blog Project</h1>
    <div class="container">
      {% for blog in blogs%}
      <div>
        <h3>{{ blog.title }}</h3>
        <p>{{ blog.writer}}</p>
		    {{ blog.body }}
      </div>
      {%endfor %}
    </div>
  </body>
</html>

blogs로 담아주었기 때문에 home.html 내에서 for 함수로 저렇게 가능. endfor을 꼭 붙이자.

 

그후 detail 페이지 만들기.

 

path('<int:id>', detail, name='detail'),

path의 <int:id> 는 단순히 번호를 표기하는 것을 넘어서 views에 있는 detail 함수에 int형 값인 id를 넘기는 역할을 한다.

 

----

 

'Django' 카테고리의 다른 글

[멋쟁이사자] django 로 개인 블로그 만들기 과제 리뷰  (0) 2022.07.23
what is api??  (0) 2022.07.22
장고 복습 7/9  (0) 2022.07.09
장고 복습 7/8  (2) 2022.07.08
장고 복습 7/6  (0) 2022.07.06
Comments