ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 장고 - 북마크 만들기
    기타/파이썬 2020. 12. 29. 14:48

    1. 파이썬 장고 프로젝트를 생성한다

    프로젝트를 생성할 때 click here to configure an interpreter not listed. 눌러주고 하기

     

    2. 북마크 어플리케이션을 생성한다

     

    3. 북마크 안에 templates 폴더 > bookmark(어플리케이션 이름을 따라간다) 폴더를 생성

     

    4. 디비를 구축한다 (2번 실행해줘야한다)

     

    5. 아나콘다 파워셀을 이용해 슈퍼유저를 생성해준다.

    슈퍼유저는 manage.py 파일이 있는 경로에서 생성해준다.

    생성코드

    python manage.py createsuperuser

     

    6. 서버를 가동해 슈퍼유저로 로그인이 잘 되는지 확인하기

     

    7. 마이그레이션으로 추가할 앱을 등록해준다

    이름은 앱 이름과 똑같이 해준다

    그리고 만든 앱을 서버에 한 번 더 저장해준다

     

     

    8. 생성된 테이블은 Dbeaver로 확인해준다.

     

     

    9. 자동으로 생성된 testsite > settings.py 파일에 생성할 어플리케이션 앱 이름을 넣는다.

     

    10. 생성된 testsite > urls.py 파일을 아래와 같이 작성

    from django.contrib import admin
    from django.urls import path
    from django.urls import include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        #bookmark/ 에 있는 bookmark.urls를 사용한다는 뜻
        #앱이 추가됨에 따라 링크도 늘어난다.
        path('bookmark/', include('bookmark.urls')),
    ]
    

     

     

    11. bookmark에 urls.py 파일을 카피해서 가져와 아래와 같이 작성한다.

    from django.contrib import admin
    from django.urls import path
    from bookmark.views import BookmarkLV, BookmarkDV
    
    app_name = 'bookmark' #네임스페이스
    urlpatterns = [
        #북마크의 리스트를 보여준다
        path('', BookmarkLV.as_view(), name='index'),
        
        #북마크 상세보기 id 값으로 주소가 연결된다.
        path('<int:pk>/', BookmarkDV.as_view(), name='detail'),
    ]
    

     

     

    12.  views.py 파일에 BookmarkLV, BookmarkDV 클래스를 생성해준다.

    from django.views.generic.list import ListView
    from django.views.generic.detail import DetailView
    from bookmark.models import Bookmark
    
    class BookmarkLV (ListView):
        model = Bookmark
        template_name = 'bookmark/bookmark_list.html'
        
    class BookmarkDV(DetailView):
        template_name = 'bookmark/bookmark_detail.html'
        model = Bookmark

     

     

    13. models.py에 Boolmark 클래스를 생성

    from django.db import models
    
    class Bookmark (models.Model):
        # 프라이머리키가 없으면 자동으로 1씩 증가하는 프라이머리키 id를 만들어준다.
        title = models.CharField('TITLE', max_length=100, blank=True)
        url = models.URLField('URL', unique=True)
        
        def __str__(self):
            return "%s %s" %(self.title, self.url)

     

     

    14. admin.py에서 관리자 화면에 보이는 정보를 설정

    from django.contrib import admin
    from bookmark.models import Bookmark
    
    @admin.register(Bookmark)
    class BookmarkAdmin(admin.ModelAdmin):
        #관리자 화면에서 나타나는 리스트 항목들
        list_display =('id', 'title', 'url')

     

     

    15. bookmark_list.html, bookmark_detail.html을 만들어준다.

    <div id="content">
    	<h1>북마크 목록</h1>
    	<ul>
    		{% for bookmark in object_list %}
    			<li><a href="{% url 'bookmark:detail' bookmark.id %}">{{bookmark}}</a></li>
    		{% endfor %}	
    	</ul>
    </div>
    <div id="content">
    	<h1>{{object.title}}</h1>
    	<ul>
    		<li>URL: <a href="{{object.url}}" target="_blank">{{object.url}}</a></li>
    	</ul>
    </div>

     

     

    16. 이제 북마크가 잘 동작하는지 관리자로 로그인 후 확인 해 보자

    댓글

Designed by Tistory.