Django 기초1

UICHEOL_HWANG·2023년 8월 23일
0

django

목록 보기
3/4

django 만들기

django-admin startproject ~이름 
LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'

USE_I18N = True

USE_TZ = True

settings.py의 timezone과 언어를 한국 기준으로 바꿔준다

Models.py

장고에서 데이터베이스와 연결되는 작업은 models.py에서 한다.

class Post(models.Model):
    title = models.CharField(max_length=30)
    content = models.TextField()
    
    created_at = models.DateTimeField(auto_now_add=True)
    # author 추후 작성 예정
    updated_at = models.DateTimeField(auto_now=True)
    
    def __str__(self):
        return f'[{self.pk}]{self.title}{self.created_at}'

제목,내용,생성날짜,수정날짜를 정의해줬다.

결과창


urls.py

localhost의 뒷 주소를 어떻게 할 것이냐를 정의해줌

첫 startproject 내의 urls.py의 url 경로를 설정해준다.

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/',include('blog.urls'))
]

admin은 장고에서 기본적으로 제공해주는 계정 및 데이터베이스 관리 사이트이다

초기에 설정 해놓은 post 모델및 user groups 를 관리를 해준다

초기에 만들어놓은 blog.url을 include 하여 세팅시켜준다

blog 디렉토리의 url를 불러오는 것이니

blog/ urls.py를 만들어준다

urlpatterns = [
    path('',views.index,name='post-list'),
]

경로는 아무것도 없이 (왜냐면 startapp에서 blog로 설정을 해줬으니 공백으로 두고)

index라는 view의 요소로 들고 온다고 지정해준다.

그럼 이제 views에서 index를 지정해주면 된다

def index(request):
    posts = Post.objects.all()
    return render(request,'blog/index.html',{'posts':posts})

model에서 설정한 post를 불러오고 / 그 안에있는 데이터를 모두 가져오게 한다 - object.all()

그다음 return 해주는데 , blog/index.html로 가주는데 context는 posts로 부를수 있게 해달라고 정해주면 된다.

마지막 index.html

<body>
    <h1>Blog</h1>

    {% for post in posts %}
        <h3>{{ post.title }}</h3>
    {% endfor %}
</body>
</html>

기존 파이썬과 같이 for문을 돌리면서 admin에서 작성한 게시물 타이틀을 모두 출력해주게끔 명령어를 입력

profile
개발 취미로 하는 세일즈맨

0개의 댓글