-
(파이썬 웹프로그래밍) 북마크앱 만들기computer_IT 2022. 8. 15. 21:02반응형
Django 폴더를 만들고 python -m venv venv 명령으로 가상환경을 만든다. 그리고 . venv/bin/activate 명령으로 가상환경을 실행 후, pip install django 로 장고 프레임워크를 설치한다. 그리고 python -m django startproject mysite(원하는 프로젝트 이름) 명령으로 프로젝트를 생성한다.
settings.py 파일을 열고 TIME_ZONE = 'Asia/Seoul' 으로 변경한다. mysite 폴더로 이동 후, 사용자 및 권한 그룹 테이블을 만들어주기 위해 python manage.py migrate 명령을 실행한다. 슈퍼유저 생성을 위해 python manage.py createsuperuser 명령을 입력 후 화면의 지시에 따라 정보를 입력하여 관리자를 생성한다.
bookmark 앱을 만들기 위해 python manage.py startapp bookmark 명령을 입력한다. setting.py 파일에 INSTALLED_APPS 에 'bookmark', 를 추가한다. 보다 정확한 방법은 'bookmark.apps.BookmarkConfig', 로 등록하는 것이다.
북마크앱은 테이블을 하나만 필요하므로 models.py 파일을 열고 다음과 같이 입력한다.
from django.db import models # Create your models here. class Bookmark(models.Model): title = models.CharField(max_length=100, blank=True, null=True) # 공백값을 가질 수 있고, 값이 없을 수도(null) 있다. url = models.URLField('url',unique=True) def __str__(self): # 객체를 문자열로 표현할 때 사용 return self.title
그리고 관리자사이트에 보이도록 등록해주어야 하는데 admin.py 파일에 다음과 같이 입력한다.
from django.contrib import admin from .models import Bookmark # Register your models here. admin.site.register(Bookmark)
저장 후, python manage.py makemigrations 로 데이터베이스 변경사항을 업데이트하고, python manage.py migrate 명령으로 실제 적용한다. python manage.py runserver & 명령으로 서버를 백그라운드에서 실행한다.(명령 뒤에 &를 붙이면 백그라운드에서 실행되며, jobs 명령으로 실행 중인 프로세스 목록을 볼 수 있다.) http://127.0.0.1:8000/admin/ 에 접속하면 관리자 로그인 페이지가 나타나고 superuser 생성시 입력한 정보로 로그인한다. 장고에서 기본적으로 만들어주는 User, Group 테이블 이외에 방금 추가한 Bookmark 테이블을 볼 수 있다.
이제 url 설정을 위해 mysite/urls.py 파일을 열고 다음과 같이 입력한다. 앱이 간단하므로 mysite url만 생성한다.
from django.contrib import admin from django.urls import path from bookmark.views import * urlpatterns = [ path('admin/', admin.site.urls), path('bookmark/', BookmarkLV.as_view(), name='index'), path('bookmark/<int:pk>/', BookmarkDV.as_view(), name='detail'), ]
클래스형 뷰로 만들기 위해 bookmark/views.py 파일을 다음과 같이 입력한다.
from django.shortcuts import render from .models import Bookmark from django.views.generic import ListView, DetailView # 클래스형 제네릭뷰를 사용 # Create your views here. class BookmarkLV(ListView): model = Bookmark class BookmarkDV(DetailView): model = Bookmark
템플릿 파일은 bookmark/templates/bookmark 폴더를 만들고 여기에 bookmark_list.html 파일을 생성한다.
<!DOCTYPE html> <html> <head> <title>Django Bookmark List</title> </head> <body> <div id="container"> <h1>Bookmark List</h1> <ul> {% for bookmark in object_list %} <li><a href="{% url 'detail' bookmark.id %}">{{ bookmark }}</a></li> {% endfor %} </ul> </div> </body> </html>
동일한 위치에 bookmark_detail.html 파일을 만든다.
<!DOCTYPE html> <html> <head> <title>Django Bookmark Detail</title> </head> <body> <div id="container"> <h1>{{ object.title }}</h1> <ul> <li>URL: <a href="{{ object.url }}">{{ object.url }}</a></li> </ul> </div> </body> </html>
서버 실행 후 관리자페이지에서 북마크를 추가한 후, http://127.0.0.1:8000/bookmark/ 에 접속하면 다음과 같은 화면을 볼 수 있다.
반응형'computer_IT' 카테고리의 다른 글
(오라클 클라우드) 무료 블로그 만들기(feat. SSG Lektor) (1) 2022.09.12 오라클 무료 서버 가동 후 서버 접속 및 설정하기(스왑, Nginx) (0) 2022.09.12 (퀀트전략 파이썬으로 세워라) 재무제표 데이터 가져오기 (0) 2022.08.03 레노버 씽크패드 L13 Yoga Gen3 21BB002RKD (SSD 256GB) 간단 리뷰 (feat. kali linux gnome 설치) (0) 2022.08.02 아치리눅스 한글설치 linux hangul(ibus) (0) 2022.07.30