Django Dashboard Atlantis - 간단한 미션 작성을 통한 학습
본고는 Django 프레임워크에서 인코딩된 open-source admin panel 을 업데이트하여 학생과 초보자의 프로그래밍 학습을 돕는 데 목적을 두고 있다.이 도전을 받아들이는 사람은 누구나 약간의 성과를 거둘 수 있다.
Thanks for reading! - Content provided by App Generator.
본고에서 사용한 웹 응용 프로그램은 Github에 발표되었고 마성이공대학 허가증에 따라 멋진 UI 도구 패키지에 기본 기능을 인코딩했다.
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에 열거된 프로젝트 의존 항목을 설치해야 합니다.우리는 두 가지 방식으로 의존 항목을 설치할 수 있다.
$ # 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.htmlCode 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로 인코딩된 추가 관리 계기판
Reference
이 문제에 관하여(Django Dashboard Atlantis - 간단한 미션 작성을 통한 학습), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/sm0ke/django-dashboard-atlantis-learn-by-coding-simple-tasks-3d4p텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)