반응형
django 에서 프로젝트를 처음 생성하고 나면,
기본 세팅을 마친 후 프로젝트의 구분에 따라 앱을 생성합니다.
저는 간단하게 메뉴별 구분이라고 생각하고 앱을 생성했습니다.
( 프로젝트에 따라서 다양한 구분이 있을 수 있습니다.)
(venv name) [aaa@project name] $
- 가상환경을 활성화 시킨 후 기본 프롬프트 (?)
- manage.py 파일이 있는 폴더로 이동합니다.
(venv name) $ ./manage.py startapp appname
- 위와 같이 앱을 생성합니다.
이후에 할 일은...
프로젝트 폴더에서
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from . import views
urlpatterns = [
...
path('appname/', include('appname.urls')),
]
// 위와 같이 새로 생성한 앱의 url르 추가합니다.
새로 생성한 앱 폴더에서 urls.py 를 생성하여 아래와 같이 입력합니다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('sub01/', views.sub01, name='sub01'),
path('sub02/', views.sub02, name='sub02'),
...
]
인덱스는 처음 해당 앱으로 접속시 보여지는 주소이며,
이하 path는 추가 하위 경로를 원하는대로 정의하면 됩니다.
새로 생성한 앱 폴더에서 views.py 의 내용을 변경합니다.
from django.shortcuts import render
import requests
# Create your views here.
def index(request) :
pageHeading = 'index'
return render(request, 'newapp/index.html', {
'pageHeading' : pageHeading,
})
// newapp/index.html 파일은 이제 생성해야 합니다.
// 저는 어디인지 알기 위하여 pageHeading 을 주로 사용하는 편입니다.
// 굳이 기입안하셔도 됩니다.
저는 django 세팅에서 html 파일들을 template 폴더로 하위에 모두 모아 두었습니다.
project / template / appname 과 appname_common 으로 두개의 폴더를 생성하였습니다.
이후 common 에는 해당 페이지에서 공통으로 사용되는 Header/ Footer/ navbar 등을 별도 파일로 분리하여,
include 를 하고 있습니다.
따라서,
project / template / appname -> views와 연결되는 index.html 등의 파일을 저장합니다.
project / template / appname_common -> views 와는 연결이 없고, 대부분 공통으로 불러오는 파일입니다.
샘플로는
# index.html
{% extends 'appname_common/common_base.html' %}
{% load common_tags %}
{% block content %}
<!-- page Heading -->
<div class=''>
<h1 class=''>App Name</h1>
</div>
<div class='row'>
<p> Project App name is worked...</p>
</div>
{% endblock %}
# common_base.html
<!DOCTYPE HTML>
<html lang='en'>
{% load static %}
{% include 'appname_commmon/common_header.html' %}
<body id=''>
<div id='wrapper' class='container-fluid'>
<div id='header' class='container'>
{% include 'appname_common/common_top_menu.html' %}
</div>
<div class='container'>
<div id='content'>
{% block content %}
{% endblock %}
</div>
</div>
<div id='footer' class='container'>
{% include 'appname_common/common_footer.html' %}
</div>
</div>
</body>
</html>
위와 같은 형태로 html 파일은 되도록 길게 안하려 하는데, 생각보다 쉽지는 않네요.
저는 기본적으로 위와 같은 형태로 사용합니다.
다른 분들도 본인들만의 구분으로 사용하시겠죠? ^^
그럼 오늘은 여기까지~~ 뾰옹~~~~~~~!!!
반응형
'Dev. > Python' 카테고리의 다른 글
파이썬 일자 관련 옵션들 (0) | 2023.03.08 |
---|---|
파이썬 post 일자 입력 체크 관련 (0) | 2023.03.08 |
django migrate (2) | 2023.02.04 |
django project settings..... (0) | 2023.01.11 |
Python & Django - startproject (0) | 2023.01.08 |