이 포스팅은 "Django 한그릇뚝딱"의 Chapter4 내용을 실습하며 정리한 내용이다.
Github repository 생성
0. 실행에 앞서 github에서 프로젝트에 사용될 repository를 만들어준다.
Desktop % git clone https://github.com/sin09135/ToDoList_Practice.git
'ToDoList_Practice'에 복제합니다...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (3/3), done.
remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0
오브젝트를 받는 중: 100% (4/4), 완료.
1. 터미널에서 해당 폴더로 들어가 준 후, VS code를 실행해준다.
Desktop % cd ToDoList_Practice
ToDoList_Practice % code .
Django ToDoList 만들기
1. 터미널에서 django를 설치한 후, 가상환경을 설정해준다.
$ which python < 파이썬 위치 확인
$ pip install django < 장고 설치
$ virtualenv venv
$ source venv/bin/activate < 가상 환경 들어가기
2. 프로젝트 만들기
django-admin start project 프로젝트명
$ django-admin startproject ToDoList < 프로젝트 만들기
$ cd ToDoList
$ ls
ToDoList manage.py < manage 파일 존재하는 거 확인
3. 어플리케이션 구성하기
ToDoList 폴더에 들어가서 python manage.py startapp my_to_do_app
$ cd ToDoList
$ python manage.py startapp my_to_do_app < app 만들기
4. Settings.py에 어플리케이션 추가
(새로 만든 어플리케이션을 등록하는 과정)
마지막 줄에 생성한 my_to_do_app 을 넣어준다.
5. URL 설정하기
프로젝트 실행 python manage.py runserver
$ python manage.py runserver
You have 18 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
July 26, 2023 - 05:14:22
Django version 4.2.3, using settings 'ToDoList.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[26/Jul/2023 05:14:31] "GET / HTTP/1.1" 200 12
Command + 클릭을 누르면 실행창으로 넘어가게 된다.
잘 실행된것을 확인하면 다시 터미널에서 ctrl + c 를 눌러 꺼준다.
6. 첫 페이지 URL 설정
- 1. ToDoList > ToDoList > urls.py
사용자가 접근했을 때, my_to_do_app 으로 보내주기
빨간 박스 부분을 추가해준다.
방금 코드로 첫페이지를 my_to_do_app 으로 보내주었다.
이제, my_to_do_app에서 설정을 완료해야한다.
my_to_do_app 은 urls 파일이 없으므로 새로 생성해줘야 한다.
- 1. ToDoList > my_to_do_list > urls.py 생성
-2. 아래와 같이 코드를 적기
# my_to_do_app > urls.py
#-*- coding:UTF-8 -*-
from django.urls import path
from . import views
urlpatterns = [
path('',views.index)
]
views.py 의 index 함수로 처리를 넘겨준다.
-*- coding:UTF-8 -*- : 한글 파일을 처리해주기 위해 입력
이제, 특정 URL 로 접근한 사용자에게 보여줄 화면을 처리할 함수를 연결하기 위해서, views.py 파일을 열어 함수를 생성해준다.
- 1. ToDoList > my_to_do_app > views.py
-2 . index 함수 생성
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("my_to_do_app")
HttpResponse 함수는 인자로 받은 문자열을 보여주는 함수이다.
7. HTML 사용하기
- 1. ToDoList > my_to_do_app>templates 생성>my_to_do_app > index.html 생성
- 2. index. html 에 하위 내용 붙여넣기
<html lang="ko">
<head>
<meta charset="UTF-8">
<!-- Boot strap -->
<!-- 합쳐지고 최소화된 최신 CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<!-- 부가적인 테마 -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap-theme.min.css">
<!-- 합쳐지고 최소화된 최신 자바스크립트 -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js"></script>
<style>
.content{
height: 75%;
}
.messageDiv{
margin-top: 20px;
margin-bottom: 50px;
}
.toDoDiv{
}
.custom-btn{
font-size: 10px;
}
.panel-footer{
height:10%;
color:gray;
}
</style>
<title>To-Do</title>
</head>
<body>
<div class="container">
<div class="header">
<div class="page-header">
<h1>To-do List <small>with Django</small></h1>
</div>
</div>
<div class="content">
<div class="messageDiv">
<form action="" method="POST">{% csrf_token %}
<div class="input-group">
<input id="todoContent" name="todoContent" type="text" class="form-control" placeholder="메모할 내용을 적어주세요">
<span class="input-group-btn">
<button class="btn btn-default" type="submit">메모하기!</button>
</span>
</div>
</form>
</div>
<div class="toDoDiv">
<ul class="list-group">
<form action="" method="GET">
<div class="input-group" name='todo1'>
<li class="list-group-item">메모한 내용은 여기에 기록될 거에요</li>
<input type="hidden" id="todoNum" name="todoNum" value="1"></input>
<span class="input-group-addon">
<button type="submit" class="custom-btn btn btn-danger">완료</button>
</span>
</div>
</form>
</ul>
</div>
</div>
<div class="panel-footer">
실전예제로 배우는 Django. Project1-TodoList
</div>
</div>
</body>
</html>
출처 : https://github.com/doorBw/Django_with_PracticeExamples (저자 깃허브)
- 3. views.py(ToDoList > my_to_do_app >views.py) 파일을 수정한다.
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
# before
'''
def index(request):
return HttpResponse("첫번째 페이지")
'''
# after
def index(request):
return render(request, "my_to_do_app/index.html")
HTML파일을 사용자에게 보여줄려면 render 함수 사용이 필요하다.
8. 확인
- 터미널에서 python manage.py runserver 로, html이 잘 연결되었는지 확인한다.
자세한 사항은 하단의 도서를 참고하길 바란다.
https://www.yes24.com/Product/Goods/83568594
Django 한 그릇 뚝딱 - 예스24
실전 프로젝트로 하나씩 직접 만들며 배우는 웹 프로그래밍이 책에서는 빠른 생산성과 쉬운 내용으로 주목받고 있는 언어인 파이썬 그리고 파이썬을 기반으로 한 웹 프레임워크인 Django를 ToDoLis
www.yes24.com
'Web > Django' 카테고리의 다른 글
[Web] ExcelCalculate with django for Mac - 1 (0) | 2023.07.31 |
---|---|
[Web] django로 Todolist 만들기 for Mac - 4 (0) | 2023.07.28 |
[Web] django로 Todolist 만들기 for Mac - 3 (0) | 2023.07.28 |
[Web] django로 Todolist 만들기 for Mac - 2 (0) | 2023.07.28 |
[Web]django gmail 발송 for Mac (0) | 2023.07.27 |