본문 바로가기
Dev./Python

Django Start app

by Alx.K 2023. 1. 20.
반응형

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