현제의 현재이야기
Django 명령어 및 순서 복습 본문
폴더 만들고 폴더 불러오기
가상환경 만들기 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 |