Django-material로 지금 바람의 사이트 만들기
git: ajitama/material_site
거칠지만 git으로 소스 코드를 내 보았습니다.
가능한 한 간단하게 쓰고 있습니다만, 아마추어 레벨이므로 쓸데없는 것에 대해서는 용서해 주세요.
Ubuntu1804LTS
Python3.6.5
장고2.0.7
material_site
├── ajitama
│ ├── __init__.py
│ ├── admin.py
│ ├── apps.py
│ ├── migrations
│ │ ├── 0001_initial.py
│ │ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ ├── urls.py
│ └── views.py
├── db20.sqlite3
├── manage.py
└── material_site
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py
장고 프로젝트 만들기
django-admin startproject material_site
우선 Settings.py를 만나보겠습니다.
흠뻑.
material_site/settings.py
import django #DBの名前を変更するために入れてます(場合によっては不要)
ALLOWED_HOSTS = ['*']
INSTALLED_APPS = [
・・・<省略>
# material apps
'material',
'material.frontend',
# userapp
'ajitama.apps.AjitamaConfig', #<後で作ります>
・・・<省略>
]
TEMPLATES = [
{
・・・<省略>
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'material.frontend.context_processors.modules', # <←追加>
],
},
},
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db{}{}.sqlite3'.format(*django.VERSION[:2])), # DBの名前の変更。(好みです)
}
}
AUTH_PASSWORD_VALIDATORS이 삭제되었습니다. (비밀번호 제약 등을 엄격하게 해주는 모듈)
material_site/url.py
from django.contrib import admin
from django.conf.urls import url
from django.urls import path, include
from material.frontend import urls as frontend_urls
urlpatterns = [
path('admin/', admin.site.urls),
url(r'', include(frontend_urls)), #追加
]
관리 사용자 만들기
먼저 만들 때
python3 manage.py createsuperuser
자신은 admin/admin으로 만들었습니다.
첫 번째 Migrate
migrate하지 않으면 앱을 만들 수 없습니다.
python3 manage.py migrate
/root/material_site# python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, frontend, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying frontend.0001_initial... OK
Applying frontend.0002_i18n... OK
Applying sessions.0001_initial... OK
애플리케이션 만들기
python3 manage.py startapp ajitama
애플리케이션 설정
ajitama/apps.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.apps import AppConfig
from material.frontend.apps import ModuleMixin
class AjitamaConfig(ModuleMixin, AppConfig):
name = 'ajitama'
icon = '<i class="material-icons">extension</i>'
ModuleMixin은 material frontend의 기능으로 URL을 좋은 느낌으로 가져와주는 것만으로 싶습니다.
ajitama/models.py
from django.db import models
SELECT_LABEL=(
('OBJ1', '選択肢1'),
('OBJ2', '選択肢2'),
('OBJ3', '選択肢3'),
)
# Create your models here.
class Article(models.Model):
subject = models.CharField(
"タイトル",
max_length=90,
)
data_str = models.CharField(
"データ(文字型)",
max_length=10000,
null=True,
)
#<以下、省略>
ajitama/views.py
from material.frontend.views import ModelViewSet
from .import models
# Create your views here.
class ArticleViewSet(ModelViewSet):
model = models.Article
ordering = ['-subject', 'data_date']
list_display = ('subject','data_date', 'data_bool','data_choice')
ajitama/urls.py
from django.urls import path, include
from django.conf.urls import url
from django.views import generic
from . import views
app_name = 'ajitama'
urlpatterns = [
url('^$', generic.RedirectView.as_view(url='./ajitop'), name="index"),
path('ajitop', include(views.ArticleViewSet().urls), name="top"),
]
앱 마이그레이션
# python3 manage.py makemigrations
Migrations for 'ajitama':
ajitama/migrations/0001_initial.py
- Create model Article
# python3 manage.py migrate
Operations to perform:
Apply all migrations: admin, ajitama, auth, contenttypes, frontend, sessions
Running migrations:
Applying ajitama.0001_initial... OK
실행해보기
장고를 시작합니다.
python3 manage.py runserver 0.0.0.0:8000
브라우저에서 액세스합니다.
htp://127.0.0.1:8000/아지타마
만든 Superuser로 로그인할 수 있는지 시도해 보세요.
장고를 사용하는 사람이 더 가까워지고, 곤란했을 때의 정보가 더 나오기를 바랍니다.
Reference
이 문제에 관하여(Django-material로 지금 바람의 사이트 만들기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ajitama/items/02dada91837935b399ae텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)