Django Dashboard Atlantis - 간단한 미션 작성을 통한 학습

안녕하십니까, 프로그래머 여러분,
본고는 Django 프레임워크에서 인코딩된 open-source admin panel 을 업데이트하여 학생과 초보자의 프로그래밍 학습을 돕는 데 목적을 두고 있다.이 도전을 받아들이는 사람은 누구나 약간의 성과를 거둘 수 있다.
  • Git/Django 프레임워크 적응
  • 운영 준비 이니시에이터 장착: Django Atlantis
  • 가상 환경을 이용한 Python 프로젝트 구축
  • 기존 페이지의 제목 변경
  • 새 페이지 만들기
  • Django shell
  • 을 사용하여 정의된 사용자를 나열합니다.

    Thanks for reading! - Content provided by App Generator.


    본고에서 사용한 웹 응용 프로그램은 Github에 발표되었고 마성이공대학 허가증에 따라 멋진 UI 도구 패키지에 기본 기능을 인코딩했다.
  • SQLite, Django Orm
  • 모듈식 코드 라이브러리
  • 세션 기반 인증(로그인, 등록)
  • 테이블 검증
  • 사용자 인터페이스 키트: ThemeKita에서 제공하는 Atlantis Dark Dashboard

  • Django(웹 프레임워크)


    Django는 Python으로 작성된 소스 웹 응용 프로그램 프레임워크입니다.프레임워크는 개발이 더 쉬운 모듈과 조수의 집합을 지시한다.그것들은 논리적으로 조합되어 있으며, 처음부터 작성하지 않고 내용을 다시 사용해서 웹 응용 프로그램을 만들 수 있습니다.
    유용한 Django 리소스:

  • Django - 공식 사이트 및 docs

  • Reddit/r/Django - Reddit 커뮤니티 활성화

  • Django-(유행적인) 풀스택 Python 플랫폼
  • 에서 제공하는 관련 내용

    소스 코드 복제


    앞에서 설명한 대로 Github에 게시된 이 응용 프로그램은 프로젝트 페이지에서 zip을 다운로드하거나 터미널 및 git 명령 도구를 사용하여 원본 코드를 복제하여 쉽게 원본 코드를 얻을 수 있습니다.
    $ git clone https://github.com/app-generator/django-dashboard-atlantis-dark.git
    $ cd django-dashboard-atlantis-dark
    

    코드 구조


    로컬에서 원본 코드를 얻은 후, 우리는 구조를 분석하는 데 시간을 좀 들일 것이다.기본적으로 Django 프로젝트는 모듈식으로 되어 있어 쉽게 이해하고 업데이트할 수 있습니다.우리의 프로젝트도 예외가 아니다. 코드 라이브러리는 세 개의 모듈로 나뉜다.

  • Core module - 정적 자산(JS, CSS, 이미지) 및 글로벌 구성 처리

  • Authentication module - 로그인 및 사용자 등록 처리

  • App module - 기타 모든 작업을 관리합니다. 사용자가 인증을 받았을 때 응용 프로그램 페이지를 제공하지 않으면 로그인 페이지로 리디렉션됩니다.다음 간단한 차트에는 관련 파일이 나열되어 있습니다.
  •  # Source code:
     # https://github.com/app-generator/django-dashboard-atlantis-dark
    
     <django-dashboard-atlantis-dark>
         |
         |-- requirements.txt # project dependencies 
         |-- manage.py        # app bootstrapper 
         |
         |-- <core>
         |      | 
         |      |---- settings.py # global settings 
         |      |---- urls.py     # define the routing rules  
         |      |
         |      |---- <static>    # used for assets (js, css, images)  
         |      |---- <templates> # HTML templates 
         |                |       
         |                |-- layouts, includes, pages
         |
         | 
         |-- <authentication> 
         |      | 
         |      |---- views.py # manage Login, registration pages
         |      |---- urls.py  # Auth routing rules (login, register)
         |      |---- forms.py # Define auth forms  
         |
         | 
         |-- <app> 
         |      | 
         |      |---- views.py  # load dashboard pages
         |      |---- urls.py   # Define the routing rules 
         |      |---- models.py # Define the User model, used by authentication
         |
         |-- ******************************************************************
    

    Have questions regarding the structure? AMA in the comments.


    프로젝트 구축


    Python/Django 프로젝트는 일반적으로 원본 코드에서 구축되기 때문에 requirements.txt에 열거된 프로젝트 의존 항목을 설치해야 합니다.우리는 두 가지 방식으로 의존 항목을 설치할 수 있다.
  • 글로벌 Python 환경을 사용하여 프로젝트 의존 항목을 설치하는 것은 현재 좋은 방법입니다. 왜냐하면 우리가 다른 응용 프로그램
  • 에서 사용하는 버전 간에 충돌이 있을 수 있기 때문입니다.
  • 사용Virtual environment - 대부분의 경우 파이썬 샌드박스를 사용하여 응용 프로그램을 실행하고 구축하는 데 도움을 주는 추천 방식입니다.응용 프로그램에 필요한 모든 모듈이 가상 환경에 설치되어 다른 Python 응용 프로그램에서 사용하는 모듈과 충돌할 위험이 사라졌습니다.
  • 가상 환경을 활성화하고 모듈을 설치하려면 터미널에 간단한 명령 몇 개를 입력해야 합니다.
    $ # Make sure you are inside the project
    $ cd django-dashboard-atlantis-dark
    $
    $ # Virtualenv modules installation (Unix based systems)
    $ virtualenv --no-site-packages env
    $ source env/bin/activate
    $
    $ # Virtualenv modules installation (Windows based systems)
    $ # virtualenv --no-site-packages env
    $ # .\env\Scripts\activate
    $ 
    $ # Install modules
    $ pip3 install -r requirements.txt
    
    만약 모든 것이 순조롭다면 우리는 다음 단계로 들어갈 수 있다.

    웹 응용 프로그램 시작


    사용 가능한 Django 웹 응용 프로그램을 만들기 위해서는 시작하기 전에 데이터베이스를 설정해야 합니다.간단한 명령 두 개만으로 쉽게 수행할 수 있습니다.
    $ # makemigrations sub-command will generate the necessary SQL code
    $ python manage.py makemigrations
    $
    $ # Migrate sub-command will create the SQLite database and tables
    $ python manage.py migrate
    
    만약 모든 것이 순조롭다면, 우리는 응용 프로그램을 시작하여 컨트롤러에 다음과 같은 내용을 입력하여 브라우저의 사용자 인터페이스에 접근할 수 있다.
    $ # Start the application (development mode)
    $ python manage.py runserver # default port 8000
    $
    $ # Start the app - custom port 
    $ # python manage.py runserver 0.0.0.0:<your_port>
    $
    $ # Access the web app in browser: http://127.0.0.1:8000/
    
    기본적으로 프로그램에 기본 사용자가 정의되어 있지 않습니다. 생성해야 합니다.본고의 첫 부분에서 말한 바와 같이 이 프로그램은 로그인과 등록에 사용되는 인증 화면을 가지고 있다.

    Registration Page



    사용자를 만들면 로그인 페이지에 액세스하여 인증할 수 있습니다.

    로그인하면 웹 응용 프로그램 메뉴와 기본 대시보드 페이지를 볼 수 있습니다.

    페이지 제목 업데이트


    이 Django 프로젝트에서 페이지는 모판 페이지와 특정한 데이터를 포함하는 뼈대extends의 실제 페이지 간의 조합을 사용하여 나타난다.예를 들어, index pageextends 모판 페이지default.html

    Code for master page


    <head>
    
       <meta http-equiv="X-UA-Compatible" content="IE=edge" />
       <title>
        Django Dashboard Atlantis - { % block title % }{ % endblock % } | AppSeed 
       </title>
    
    </head>
    <body data-background-color="dark">
        { % include 'includes/navigation.html' % }
    
        { % include 'includes/sidenav.html' % }
    
        <div class="main-panel">
            <div class="content">
    
                { % content % }{ % content % }
    
            </div>
    
        { % include 'includes/footer.html' % }
    
        </div>
    
    </body>
    </html>
    
    새 페이지extends가 다른 페이지를 가리킬 때 index 페이지에서 본 바와 같이 관련 응답 블록 간에 구체적인 내용을 정의해야 합니다.
    {% extends "layouts/default.html" %}
    
    {% block title %} Dashboard {% endblock title %}
    
    { % block content % }
    
       <H1> Specific Content injected into the master page </H1>
    
    { % endblock content % }
    
    페이지 제목을 변경하려면 title block 의 텍스트를 업데이트해야 합니다.
    {% extends "layouts/default.html" %}
    
    {% block title %} New Title {% endblock title %}
    
    ...
    

    새 페이지 만들기


    현재 사용자가 인증을 통과한 경우 응용 프로그램은 디렉터리 pages 서비스 페이지에서 실행됩니다.이 작업을 단순화하기 위해 이 항목에는 새 페이지를 추가하는 프레임워크로 사용할 수 있는 검은색 페이지가 포함되어 있습니다.

    Black page path : root / core / templates / pages


    페이지 내용:
    {% extends "layouts/default.html" %}
    
    {% block title %} Dashboard {% endblock title %}
    
    <!-- Specific CSS goes HERE -->
    {% block stylesheets %}{% endblock stylesheets %}
    
    {% block content %}
    
        <!-- (Almost) A blank page -->
        <h3>
        Add content here
        </h3>
    
    {% endblock content %}
    
    <!-- Specific JS goes HERE -->
    {% block javascripts %}{% endblock javascripts %}
    
    새 페이지를 만들려면 이 템플릿을 새 페이지로 저장하십시오.html, 아래 내용을 업데이트하여 브라우저에서 새 페이지를 저장하고 방문합니다: http://localhost:8000/new-page.html
    {% extends "layouts/default.html" %}
    
    {% block title %} My Page Title {% endblock title %}
    
    <!-- Specific CSS goes HERE -->
    {% block stylesheets %}{% endblock stylesheets %}
    
    {% block content %}
    
        <!-- Your content here -->
        <h3>
        This is my content rendered by my new page. 
        </h3>
    
    {% endblock content %}
    
    <!-- Specific JS goes HERE -->
    {% block javascripts %}{% endblock javascripts %}
    

    콘솔을 사용하는 사용자를 나열합니다.


    Django는 응용 프로그램 구조, 데이터베이스 정보와 응용 프로그램의 정의를 테스트하거나 사용할 수 있는 편리한 방법을 제공합니다:theDjango shell
    Django 셸을 시작하려면 shell 하위 명령을 사용해야 합니다.
    $ # Start the Django shell
    $ python manage.py shell
    
    만약 모든 것이 순조롭다면, 우리는 다음과 같은 결과를 보아야 한다.
    >>> Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 22:20:52) [MSC v.1916 32 bit (Intel)] on win32
    >>> Type "help", "copyright", "credits" or "license" for more information.
    >>> (InteractiveConsole)
    >>>
    
    이 점에서 말하자면, 우리는 이 셸 인터페이스를 통해 우리의 프로젝트 데이터와 방법과 상호작용을 할 수 있다.응용 프로그램에 등록된 모든 사용자를 나열하려면 모든 사용자를 저장하는 사용자 모델을 가져오고 Django 원래 ORM을 사용하여 조회해야 합니다.
    >>> from django.contrib.auth.models import User
    >>> User.objects.all()
    <QuerySet [<User: test>]>
    >>> User.objects.all()[0].id
    1
    >>> User.objects.all()[0].username
    `test`
    

    Thank you for reading this long post. Feel free to AMA in the comments.


    리소스 및 링크


  • Django Dashboard Atlantis Dark - 소스 코드

  • Django Admin Dashboards - Django로 인코딩된 추가 관리 계기판
  • 좋은 웹페이지 즐겨찾기